System.Net.Http.Formatting.dll causing issues with Newtonsoft.Json

11

My Windows service is in the same solution as a MVC project.

The MVC project uses a reference to SignalR Client which requires Newtonsoft.Json v6 +

the Windows service uses System.Net.Http.Formatting, which requires Newtonsoft.Json version 4.5.0.0.

I assumed this would not be a problem, as I could just use a binding redirect in my App.Config, however I get an error of

An unhandled exception of type 'System.IO.FileLoadException' occurred in System.Net.Http.Formatting.dll

Additional information: Could not load file or assembly 'Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

my app.config has the following:

<dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/>
</dependentAssembly>

I added that myself, and it does not work, I have also tried uninstalling and re-installing Json.Net with the nuget package manager, to no avail

c#
asp.net
asp.net-mvc
json.net
asked on Stack Overflow Jun 22, 2015 by LiamHT • edited Apr 26, 2019 by Wai Ha Lee

3 Answers

4

We faced same error and struggled to fix for few days. We finally we found this post on stack overflow Assembly reference cannot be resolved - dependentAssembly issue?

This made us realize to look into the version of System.Net.Http.Formatting being used and we found that our solution had been using multiple version of System.Net.Http.Formatting.dll and those each of them were referencing different version of Newtonsoft.Json.dll.

Removing references of older version of System.Net.Http.Formatting and adding references back, fixed the problem.

Hope that helps.

answered on Stack Overflow Feb 27, 2017 by chintan123 • edited Mar 19, 2019 by SharpC
0

Does the assemblyBinding tag have proper xmlns schema? Check if the issue you are encountering is same as Assembly binding redirect does not work

answered on Stack Overflow Jun 22, 2015 by Mothupally • edited May 23, 2017 by Community
0

@chintan123 actually pointed my in the right direction, turns out that despite the class library I was creating had a reference to both System.Net.Http.Formatting and also Newtonsoft.Json, only the former was being copied to the bin directory of the calling project that needed it.

Adding a reference to Newtonsoft.Json to the main calling project fixed the issue.

answered on Stack Overflow Mar 19, 2019 by SharpC

User contributions licensed under CC BY-SA 3.0