DBooots / KerbalWindTunnel

A mod for Kerbal Space Program to provide atmospheric performance data for spaceplanes and aircraft.
Other
11 stars 3 forks source link

This mod causing major errors with multiple mods #5

Closed austinjames314 closed 3 years ago

austinjames314 commented 5 years ago

See the issue over on kOS: KSP-KOS/KOS#2486

It was resolved after uninstalling KerbalWindTunnel. Multiple exceptions all over the place were occurring until I uninstalled this mod. Here's my (very large) log file from one example run.

https://drive.google.com/open?id=1chWNtFhS4gYyJCwo0mTPel33avpp78ML

@Dunbaratu is posting more details on the linked issue above.

Dunbaratu commented 5 years ago

As far as I can tell, the culprit might be the Accord library that this mod uses.

As soon as it tries loading Accord, this message appears in the log:

[ERR 09:09:09.046] AssemblyLoader: Exception loading 'Accord': System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.
  at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool)
  at System.Reflection.Assembly.GetTypes () [0x00000] in <filename unknown>:0 
  at AssemblyLoader.LoadAssemblies () [0x00000] in <filename unknown>:0 

And from then on, any other mod that attempts to perform the following reflection call will throw an exception when it tries. In kOS's case, that exception truncates kOS's setup work it does when trying to load.

System.Reflection.Assembly.GetTypes()

It seems it throws the exception because one of the types that exists in the mix (I assume from Accord) isn't compatible with the Mono that KSP uses. Searching the error message "ReflectionTypeLoadException" shows a LOT of hits in Unity3d fora all of which allude to problems with DLLs existing in the game that were being compiled for too new a version of .net.

DBooots commented 3 years ago

Accord library dll dropped and source for relevant methods placed in this mod's dll. Fix made in https://github.com/DBooots/KerbalWindTunnel/commit/a195889a66384cce5c1d8ad1c7ebe411ed54e142 and released in 1.2.3.