net-lisias-ksp / KSP-Recall

Recall for KSP blunders, screw ups and borks.
GNU General Public License v2.0
25 stars 2 forks source link

Something screwed up with KSP-Recall.dll Startup. #30

Closed Lisias closed 2 years ago

Lisias commented 2 years ago

Didn't understood what happened.

Trying to figure it out.

Lisias commented 2 years ago

Found the reason

[EXC 21:30:01.009] TypeLoadException: Could not resolve type with token 01000012 (from typeref, class/assembly KSPe.Util.SystemTools, KSPe.Light.Recall, Version=2.3.1.0, Culture=neutral, P
        UnityEngine.DebugLogHandler:LogException(Exception, Object)
        KSPe.Util.Log.UnityLogDecorator:UnityEngine.ILogHandler.LogException(Exception, Object)
        ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
        UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)
Lisias commented 2 years ago

Oukey. I just used the very same binaries to KSP 1.12.1 and they worked. It really appears to be something missing on the KSP 1.12.2 runtime…

Lisias commented 2 years ago

Found this:

https://github.com/mono/mono/issues/7410

Lisias commented 2 years ago

Weird! Now, on KSP 1.12.1, the thing works, but MM WatchDog now is borking due a similar problem, but using a different token number….

Lisias commented 2 years ago

AAAND…. The problem vanished. o.O

Don't know if I blame Microsoft, Unity or Apple for this one…

— EDIT — Por encresça que parível, eles são inocentes nessa. :D

Lisias commented 2 years ago

AAAAND… It's back!!!

[EXC 01:00:17.341] TypeLoadException: Could not resolve type with token 01000014 (from typeref, class/assembly Loader, )
        UnityEngine.DebugLogHandler:LogException(Exception, Object)
        KSPe.Util.Log.UnityLogDecorator:UnityEngine.ILogHandler.LogException(Exception, Object)
        ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
        UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)

Now with a new token! Marvelous, uh?

Lisias commented 2 years ago

Aaaand… Its gone again.

Lisias commented 2 years ago

I found the problem - a DLL file with the wrong timestamp fooled the deployment and ended up being copied into the testing bed. I think these token thingies are protected/internal artefacts not meant to be exported, and so don't have a proper name on the symbol table.

Lisias commented 2 years ago

(don't ask me how that timestamp changed)