1.4 KiB
1.4 KiB
Legacy binary compatibility (10.0.0-3)
Goal: an application already compiled against IMSApiDotNet.dll 10.0.0-3 must be able to replace only the DLL with the new HttpClient implementation. No recompilation of the application is allowed.
Compatibility fixes applied to the shared source used by net48 and netstandard2.0:
IMSApiDotNetBase.setProperty(string,string)restored as public static void on the original declaring type.- property storage is process-global again, matching the legacy
SystemPropertiesbehavior. IMSApiDotNet.loadLibrary()keeps the legacy static signature and returns a process-wide singleton again.IMSApiDotNetConstantsrestored as a public legacy base class.IMSApiDotNetBasederives fromIMSApiDotNetConstantsagain.- legacy
getIMSApiDotNetErrorText(int),logBegin(string)andlogEnd(string)signatures restored. - Assembly name remains
IMSApiDotNetand AssemblyVersion remains10.0.0.3for both targets.
Verification
Run on Windows with a .NET SDK / .NET Framework 4.8 runtime:
.\scripts\check-legacy-binary-compat.ps1
The smoke executable is compiled against the untouched reference\IMSApiDotNet_10.0.0-3_original.dll. The script then copies that unchanged EXE into two clean directories and replaces only IMSApiDotNet.dll, first with the net48 build and then with the netstandard2.0 build. Both executions must print ABI OK.