Suha Alhabaj
Suha Alhabaj

Reputation: 101

How to fix json.net (Newtonsoft.Json) runtime file load exception

I get the following exception every time I run my project:

An exception of type 'System.IO.FileLoadException' occurred in mscorlib.dll but was not handled in user code 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)

I tried almost every solution I could find on the web.

My packages.config file:

<package id="Newtonsoft.Json" version="8.0.2" targetFramework="net451" />

and this in web.config file:
 <assemblyIdentity name="Newtonsoft.Json" PublicKeyToken="30ad4fe6b2a6aeed"  />
        <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="5.0.8"/>
      </dependentAssembly>

I even used the following commands to update/reinstall json.net:

update-package Newtonsoft.Json -reinstall
update-package Newtonsoft.Json

What else I can try?

Upvotes: 3

Views: 6859

Answers (4)

Anjali Musmade
Anjali Musmade

Reputation: 1

I had the same issue holding up I just installed the Nuget Package 'Newtonsoft.json', for my project. And it get solved

Upvotes: 0

Pete
Pete

Reputation: 267

I had this issue and upon closer inspection I realized that somehow Newtonsoft had gotten added twice as a

<dependentAssembly>..</dependentAssembly>

in my web.config file. I had version 8.0 and 9.0 entries. I believe the 2nd entry was created when I updated from 8.0 to 9.0. A new entry was automatically created, however the old entry was not removed.

Upvotes: 0

Suha Alhabaj
Suha Alhabaj

Reputation: 101

Thanks everyone, I found the problem. I did not add culture="neutral" when I put this in web.config.

<dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" PublicKeyToken="30ad4fe6b2a6aeed"  />
    <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0"/>
  </dependentAssembly>

Upvotes: 0

NikolaiDante
NikolaiDante

Reputation: 18639

Change your binding redirect newVersion and oldVersion to match the version of Json.net your are trying to use:

  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" PublicKeyToken="30ad4fe6b2a6aeed"  />
    <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0"/>
  </dependentAssembly>

4.5 is the framework version, not the version of Json.net

Upvotes: 3

Related Questions