You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Sep 9, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Sep 9, 2026. It is now read-only.
Detect the installed KSA version from KSA.dll's file version #40
KsaBuildVersionProvider detects the installed version by reading the newest Content/Versions/*.json and its build field. That works, but relies on file timestamps ("newest by LastWriteTimeUtc") and on the Versions folder being intact. KSA.dll's PE file version (FileVersionInfo.GetVersionInfo(<GameDir>/KSA.dll).FileVersion) carries the exact same 4-part version (e.g. 2026.6.9.4750) and can be read without loading the assembly, similar to how the KSP2 provider falls back to FileVersionInfo of the exe.
Tasks
Try KSA.dll's FileVersion first in KsaBuildVersionProvider, keeping the Content/Versions scan as fallback.
Keep the fallback authoritative for faked instances: GameInstanceManager.FakeInstance writes a minimal Content/Versions file (Make instance fake work for KSA #34) and creates no KSA.dll, so the fallback path must stay tested.
Extend KsaBuildVersionProviderTests for both sources and their precedence.
Not blocking anything; the current provider works. Filed so it does not get lost.
Problem
KsaBuildVersionProviderdetects the installed version by reading the newestContent/Versions/*.jsonand itsbuildfield. That works, but relies on file timestamps ("newest by LastWriteTimeUtc") and on the Versions folder being intact.KSA.dll's PE file version (FileVersionInfo.GetVersionInfo(<GameDir>/KSA.dll).FileVersion) carries the exact same 4-part version (e.g.2026.6.9.4750) and can be read without loading the assembly, similar to how the KSP2 provider falls back toFileVersionInfoof the exe.Tasks
KSA.dll's FileVersion first inKsaBuildVersionProvider, keeping theContent/Versionsscan as fallback.GameInstanceManager.FakeInstancewrites a minimalContent/Versionsfile (Make instance fake work for KSA #34) and creates noKSA.dll, so the fallback path must stay tested.KsaBuildVersionProviderTestsfor both sources and their precedence.Not blocking anything; the current provider works. Filed so it does not get lost.