Open ihsoft opened 4 years ago
In that case, it's very likely that the KIS dll which has changed is incompatible with what the mod is looking for, so I actually DON'T want it to work in that case.
The correct version of KSPDev_Utils is included with KIS, so this is actually a reasonable way to make sure that EVAFuel won't try accessing the wrong version of KIS, which would cause other problems.
Maybe I need to rebuild the mod for the current version of KIS, which would solve the problem here without the need to include a foreign DLL.
Rebuilding for the new KIS version will sure work.
As for the Utils, its version is unrelated to the KIS version. So, if it changes it is very unlikely that KIS dll got an incompatible change. For KIS the utils DLL is an implementation. Why would you care about the implementation change if the interface between KIS and your mod was not changed?
Anyway, you better know what your mod needs :) What I'd suggest to reduce the frequency of your mod update due to the KIS stuff is to simply copy the relevant Utils modules that you use into the project (I think these are ScreenMessaging
and UISoundPlayer
). KPDev Utils is distributed under Public Domain licence, so doing this is perfectly fine.
I've been thinking about this a lot.
That is an excellent suggestion, thank you.
Unfortunately, in a quick test, ScreenMessaging needs other parts. Would you have any objection if I just included the DLL ?
Including DLL is completely fine. It was made exactly for this :)
The release lacks
KSPDev_Utils.2.1.dll
which is used by theModuleKISItemEvaPropellantProxy
. It works fine with the KIS version up to1.24
because Utils v2.1 module is shipped with KIS. However, starting from KIS v1.25 a newer version is used, so KISCompact fails:The idea of using version in the assembly name was to avoid the "DLLs hell" and make the mods working with the dexact version of Utils they were linked with. For this to work properly every mod must have a copy of the utils DLL. It's fine to have multiple copies of the same version, the game's loader will actually load just one, so no RAM will be wasted.