# 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 `SystemProperties` behavior. - `IMSApiDotNet.loadLibrary()` keeps the legacy static signature and returns a process-wide singleton again. - `IMSApiDotNetConstants` restored as a public legacy base class. - `IMSApiDotNetBase` derives from `IMSApiDotNetConstants` again. - legacy `getIMSApiDotNetErrorText(int)`, `logBegin(string)` and `logEnd(string)` signatures restored. - Assembly name remains `IMSApiDotNet` and AssemblyVersion remains `10.0.0.3` for both targets. ## Verification Run on Windows with a .NET SDK / .NET Framework 4.8 runtime: ```powershell .\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`.