The reference to System.Web.Http in AppBase was pointing to
C:\Program Files(x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies\System.Web.Http.dll
I added my latest
Microsoft.AspNet.WepApi.Core 5.1.2
package to AppBase as used in Server. This pulled in the dependency packages,
Microsoft.AspNet.WebApi.Client 5.1.2 Newtonsoft.Json 6.0.3 (the only version in my package source)
The System.Web.Http reference in AppBase now points to,
MySolutionFolder\packages\Microsoft.AspNet.WebApi.Core.5.1.2\lib\net45\System.Web.Http.dll
When I build AppBase now, the WepApi DLLs in Server no longer get altered to legacy versions.
Incidentally,
This package change adds multiple (a|A)pp.config files within the solution’s projects, all with binding redirects to the latest version of Newtonsoft.Json.
Note
I actually view this as a work around albeit, one I’m glad to find.
The code in AppBase does not actually need the latest System.Web.Http.dll.
I still don’t know why building AppBase should effect Server, is this a bug?
Marking the troublesome DLLs as read-only did not protect them. Changing the security rights did, but no error was logged during the build of AppBase, even with diagnostic build logging.