For your request I started with yet another application that I have that only ever used the other SDK.
I used Visual Studio Add Reference to add the following:
In this case the other SDK connected to its server.
In this case the other SDK did not connect to its server.
This application has additional logging and so I noticed the following error immediately after the attempt was made to connect to the other SDK server:
Exception Loading TheAssembly
ItemToResolve=Newtonsoft.Json, Version=126.96.36.199, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed
Path=C:\Program Files (x86)\TheOtherSDK\Newtonsoft.Json.dll
Message=Could not load file or assembly 'file:///C:\Program Files (x86)\TheOtherSDK\Newtonsoft.Json.dll' or one of its dependencies.
The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
The application makes use of
AppDomain.CurrentDomain.AssemblyResolve += OnAssemblyResolve;
Upon the application invoking a System.Reflection.Assembly.LoadFrom the above error was encountered. I believe because the other SDK is incompatible with the version of Newtonsoft.Json that MapSuite now uses..
At this point I began investigating this and did no more of your tests as they no longer seem necessary to me, but will continue if you want.
Versions of ThinkGeo.MapSuite.Wpf greater thanV11.0.0beta091 make use of Newtonsoft.Json V188.8.131.5227, which has a date of 11/27/2018.
The other SDK makes use of Newtonsoft.Json V184.108.40.20622, which has a date of 01/23/2017.
I added the following to the exe.config file:
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-220.127.116.11270" newVersion="18.104.22.16822" />
With the above in the exe.config and the AppDomain.CurrentDomain.AssemblyResolve += OnAssemblyResolve; Newtonsoft.Json V22.214.171.12422 is successfully loaded and the other SDK connects successfully to its server.
I also added this to the application that renders a MapSuite map and uses the other SDK and it also now works. The map appears to be functioning properly.
The question now for me is what is going to happen when ThinkGeo.MapSuite.Wpf.dll attempts to use Newtonsoft.Json V126.96.36.19922 in my applications?
What functionality in MapSuite makes use of Newtonsoft.Json?
I have reached out to the company of the other SDK to get their input. Sometime in the next few months I will be upgrading to their latest SDK version so I imagine they will be using a more current version of Newtonsoft.Json.
What are your thoughts?