KSP-ModularManagement / KSPe

Extensions and utilities for Kerbal Space Program
http://ksp.lisias.net/add-ons/KSPAPIExtensions
Other
11 stars 5 forks source link

Weird `ExecutionEngineException: String conversion error: Illegal byte sequence encounted in the input` on Windows #32

Open Lisias opened 1 year ago

Lisias commented 1 year ago

Fellow Kerbonaut Astraph is being throw under the bus by a pretty weird Exception:

[ERR 16:54:46.309] Couldn't extract exception string from exception of type TargetInvocationException (another exception of class 'ExecutionEngineException' was thrown while p

[EXC 16:54:46.310]

[LOG 16:54:46.310] [AddonLoader]: Instantiating addon 'Startup' from assembly 'KSPe.Light.DOE'
[LOG 16:54:46.310] [AddonLoader]: Instantiating addon 'Startup' from assembly 'DockingCamKURS'
[LOG 16:54:46.310] [AddonLoader]: Instantiating addon 'DynamicBatteryStorage' from assembly 'DynamicBatteryStorage'
[LOG 16:54:46.312] [AddonLoader]: Instantiating addon 'GlobalEVEManager' from assembly 'EVEManager'
[LOG 16:54:46.341] [AddonLoader]: Instantiating addon 'ShaderLoaderClass' from assembly 'ShaderLoader'
[LOG 16:54:46.341] [AddonLoader]: Instantiating addon 'ShaderProperties' from assembly 'Utils'
[LOG 16:54:46.342] [AddonLoader]: Instantiating addon '_BuildManager' from assembly '_BuildManager'
[EXC 16:54:46.346] ExecutionEngineException: String conversion error: Illegal byte sequence encounted in the input.
        System.Reflection.Assembly.get_Location () (at <9577ac7a62ef43179789031239ba8798>:0)
        _BuildManager._BuildManager+<>c__DisplayClass2_0.<logVersion>b__1 (System.Reflection.Assembly x) (at <b7753086ed104f0cb27def0fb5040bc9>:0)
        System.Linq.Utilities+<>c__DisplayClass1_0`1[TSource].<CombinePredicates>b__0 (TSource x) (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
        System.Linq.Enumerable+WhereSelectArrayIterator`2[TSource,TResult].ToList () (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
        System.Linq.Enumerable.ToList[TSource] (System.Collections.Generic.IEnumerable`1[T] source) (at <351e49e2a5bf4fd6beabb458ce2255f3>:0)
        _BuildManager._BuildManager.logVersion () (at <b7753086ed104f0cb27def0fb5040bc9>:0)
        _BuildManager._BuildManager.Awake () (at <b7753086ed104f0cb27def0fb5040bc9>:0)
        UnityEngine.DebugLogHandler:LogException(Exception, Object)
        ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
        UnityEngine.GameObject:AddComponent(Type)
        AddonLoader:StartAddon(LoadedAssembly, Type, KSPAddon, Startup)
        AddonLoader:StartAddons(Startup)
        <LoadObjects>d__90:MoveNext()
        UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
        <CreateDatabase>d__71:MoveNext()
        UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
        GameDatabase:StartLoad()
        <LoadSystems>d__11:MoveNext()
        UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
        LoadingScreen:Start()

I don't have the slightest idea about what this can be, but I'm guessing that some String on an Assembly Metadata is kaput, and by trying to handle something related to such Assembly KSP is caught with its pants down.

This thing is completely unrelated to KSPe, but I had to find a place to register the thing - so KSPe appears to be the right one. It's where I'm fighting the good fight against Unity, Mono and Windows anyway! :)

Lisias commented 1 year ago

There's very good chance that we may be dealing with an environmental problem (or, at least, trigger).

So I made this thing : ksp-offline-check.zip (source on this repo).

In order to use it, one need to unzip it somewhere and then:

./ksp-offline-check.exe DLL ~/Workspaces/KSP/runtime/1.12.3 ~/Workspaces/KSP/runtime/1.7.3

Where, obviously, ~/Workspaces/…. should be replaced by the pathname of your KSP's rigs you wanna test (yeah, you can run it on more than one). If the pathname have spaces or similar weirdyties you need to use double quotes on the pathnames:

./ksp-offline-check.exe DLL "C:\\Programs Files\\Games\\KSP\\1.12.3" "C:\\Programs Files\\Games\\KSP\\1.7.3"

The output will be something similar to this:

KSPe's Console Tool for KSP v2.4.2.1 /L
DLL Integrity check.
Checking /Users/lisias/Workspaces/KSP/runtime/1.12.3...
    /ModuleManager.dll... Ok.
    /000_KSPe.dll... Ok.
    /666_ModuleManagerWatchDog.dll... Ok.
    /999_Scale_Redist.dll... Ok.
    /999_CLSInterfaces.dll... Ok.
    /999_SMInterface.dll... Ok.
    /TweakScaleCompanion/Frameworks/TweakScaleCompanion_Frameworks.dll... Ok.
    /ModuleManagerWatchDog/Plugins/WatchDogForScaleRedist.dll... Ok.
    /ModuleManagerWatchDog/Plugins/WatchDogForInterstellarRedist.dll... Ok.
    /000_KSPAPIExtensions/Plugins/KSPe.System.dll... Ok.
    /000_KSPAPIExtensions/Plugins/KSPe.UI.dll... Ok.
    /000_KSPAPIExtensions/Plugins/KSPe.HMI.dll... Ok.
    /000_KSPAPIExtensions/Plugins/KSPAPIExtensions.dll... Ok.
    /net.lisias.ksp/VesselMover/VesselMover.dll... Ok.
    /Waterfall/Plugins/Waterfall.dll... Ok.
    /KourageousTourists/Plugins/KourageousTourists.dll... Ok.
    /ModuleManager/PluginData/ModuleManager.dll... Ok.
    /Squad/Plugins/KSPSteamCtrlr.dll... Ok.
    /TweakScaleCompanion/Frameworks/Waterfall/TweakScalerWaterfallFX.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.16.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.UI.14.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.17.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.Unity.2017.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.15.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.14.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.111.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.UI.12.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.11.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.110.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.112.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.13.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.Unity.5.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.12.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.Unity.2019.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.19.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.18.dll... Ok.
    /KourageousTourists/Plugins/PluginData/KourageousTourists.KSP.Chute.13.RealChute.dll... Ok.
    /KourageousTourists/Plugins/PluginData/KourageousTourists.KSP.Chute.14.RealChute.dll... Ok.
    /KourageousTourists/Plugins/PluginData/KourageousTourists.KSP.EVA.13.KIS.dll... Ok.
    /KourageousTourists/Plugins/PluginData/KourageousTourists.KSP.Chute.14.dll... Ok.
    /KourageousTourists/Plugins/PluginData/KourageousTourists.KSP.EVA.13.dll... Ok.
    /KourageousTourists/Plugins/PluginData/KourageousTourists.KSP.EVA.16.dll... Ok.
    /TweakScaleCompanion/Frameworks/Waterfall/PluginData/TweakScalerWaterfallFXIntegrator.dll... Ok.
Checking /Users/lisias/Workspaces/KSP/runtime/1.7.3...
    /ModuleManager.dll... Ok.
    /000_Hyperspace.dll... Ok.
    /000_KSPe.dll... Ok.
    /666_ModuleManagerWatchDog.dll... Ok.
    /999_Scale_Redist.dll... Ok.
    /AviationLights/AviationLights.dll... Ok.
    /KAX/KAX.dll... Ok.
    /KAX/KSPe.Light.KAX.dll... Ok.
    /DistantObject/Plugins/KSPe.Light.DOE.dll... Ok.
    /DistantObject/Plugins/DistantObject.dll... Ok.
    /ModuleManagerWatchDog/Plugins/WatchDogForScaleRedist.dll... Ok.
    /ModuleManagerWatchDog/Plugins/WatchDogForInterstellarRedist.dll... Ok.
    /000_KSPAPIExtensions/Plugins/KSPe.System.dll... Ok.
    /000_KSPAPIExtensions/Plugins/KSPe.UI.dll... Ok.
    /000_KSPAPIExtensions/Plugins/KSPe.HMI.dll... Ok.
    /000_KSPAPIExtensions/Plugins/KSPAPIExtensions.dll... Ok.
    /net.lisias.ksp/VesselMover/VesselMover.dll... Ok.
    /net.lisias.ksp/KerbalObjectInspector/KerbalObjectInspector.dll... Ok.
    /net.lisias.ksp/CrewLight/CrewLight.dll... Ok.
    /net.lisias.ksp/PartInfo/PartInfo.dll... Ok.
    /net.lisias.ksp/SmokeScreen/SmokeScreen.dll... Ok.
    /net.lisias.ksp/WorldStabilizer/WorldStabilizer.dll... Ok.
    /net.lisias.ksp/GPWS/GPWS.dll... Ok.
    /net.lisias.ksp/KramaxAutoPilot/KramaxAutoPilot.dll... Ok.
    /Firespitter/Plugins/Firespitter.dll... Ok.
    /TweakScale/Plugins/Scale.dll... Ok.
    /TweakScale/Plugins/KSPe.Light.TweakScale.dll... Ok.
    /HLAirshipsCore/Plugins/HLAirships.dll... Ok.
    /HLAirshipsCore/Plugins/HLA.WatchDog.dll... Ok.
    /HLAirshipsCore/Plugins/KSPe.Light.HLAirshipsCore.dll... Ok.
    /ModuleManager/PluginData/ModuleManager.dll... Ok.
    /999_KSP-Recall/Plugins/ChillingOut.dll... Ok.
    /999_KSP-Recall/Plugins/Attached.dll... Ok.
    /999_KSP-Recall/Plugins/KSPe.Light.Recall.dll... Ok.
    /999_KSP-Recall/Plugins/Refunding.dll... Ok.
    /999_KSP-Recall/Plugins/AttachedOnEditor.dll... Ok.
    /999_KSP-Recall/Plugins/Resourceful.dll... Ok.
    /999_KSP-Recall/Plugins/Driftless.dll... Ok.
    /999_KSP-Recall/Plugins/KSP-Recall.dll... Ok.
    /Squad/Plugins/KSPSteamCtrlr.dll... Ok.
    /TweakScaleCompanion/FS/Plugins/TweakScalerFSBuoyancy.dll... Ok.
    /TweakScaleCompanion/FS/Plugins/TweakScaleCompanion_FS.dll... Ok.
    /DistantObject/Plugins/PluginData/MeshEngineTweakScale.dll... Ok.
    /DistantObject/Plugins/PluginData/MeshEngine.dll... Ok.
    /DistantObject/Plugins/PluginData/MeshEngineStock.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.16.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.UI.14.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.17.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.Unity.2017.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.15.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.14.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.111.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.UI.12.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.11.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.110.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.112.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.13.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.Unity.5.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.12.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/XInputDotNetPure.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.Unity.2019.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.19.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/KSPe.KSP.18.dll... Ok.
    /000_KSPAPIExtensions/Plugins/PluginData/XInputInterface.x86_64.dll... Not a C# Assembly.
    /000_KSPAPIExtensions/Plugins/PluginData/XInputInterface.x86.dll... Not a C# Assembly.
    /net.lisias.ksp/NavInstruments/Plugins/NavUtilLib.dll... Ok.
    /net.lisias.ksp/NavInstruments/Plugins/NavUtilRPM.dll... Ok.
    /TweakScale/Plugins/PluginData/Scale.PartDB.13x.dll... Ok.
    /TweakScale/Plugins/PluginData/Scale_Sanitizer.dll... Ok.
    /TweakScale/Plugins/PluginData/Scale.PartDB.19x.dll... Ok.
    /TweakScale/Plugins/PluginData/Scale.PartDB.15x.dll... Ok.
    /TweakScale/Plugins/PluginData/Scale.PartDB.14x.dll... Ok.
    /TweakScale/Plugins/PluginData/Scale.PartDB.18x.dll... Ok.
    /TweakScaleCompanion/FS/Plugins/PluginData/TweakScalerFSBuoyancyIntegrator.dll... Ok.

Assemblies that eventually fail the check will have an Exception name instead of an Ok on the line.

You can (or should) redirect the output to a file, so you can attach it on a post here or send me by mail:

./ksp-offline-check.exe DLL "C:\\Programs Files\\Games\\KSP\\1.12.3" "C:\\Programs Files\\Games\\KSP\\1.7.3" > results.txt

A file called results.txt will be created on the current directory with the output.