The new DLL Hell; wrong assembly version being bound

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.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)