shashwat
shashwat

Reputation: 8004

Could not load file or assembly 'Newtonsoft.Json' or one of its dependencies

First, It is not just duplicate. None of answers from following questions are working for me.

http://goo.gl/tS40cn
http://goo.gl/pH6v2T

I've just updated all my packages using Nuget Package Manager and I started receiving this error.

Could not load file or assembly 'Newtonsoft.Json, Version=6.0.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 Package Config has:

<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" />

Web.config includes this piece of code:

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

Properties from Reference for Newtonsoft.Json

enter image description here

According to the answers from the similar questions, I have tried followings:

Please help me fixing this.

Upvotes: 11

Views: 31714

Answers (10)

SDK
SDK

Reputation: 1

check the 'Newtonsoft.Json' version in the project references. Add that version in the Web config. It will work. For Example: your Webconfig look like this:

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

If your version in References is '9.0.0.0' change to this:

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

Upvotes: 0

Ash18
Ash18

Reputation: 121

Change the config to as mentioned below:

Upvotes: 0

Casey Crookston
Casey Crookston

Reputation: 13945

I know this is old, but I just ran into the same problem. My issue was that multiple projects in the solution used Newtonsoft.Json, but some were at different versions. I updated all of them to the most recent (9.0.1 as I type) and the problem went away.

Anyway... if anyone is still dealing with this, make sure to update the package in EVERY project in the solution.

HTH

Upvotes: 15

Kenmeister
Kenmeister

Reputation: 504

After trying much of the above (and some other posts), I uninstalled with the package manager all of the following from the project affected:

Microsoft.AspNet.WebApi
Microsoft.AspNet.Client
Microsoft.AspNet.Core
Microsoft.AspNet.WebHost
Newtonsoft.Json

Then reinstalled Microsoft.AspNet.WebApi, which auto installed .Client, .Core, .WebHost, .Json.

Upvotes: 2

Zafar
Zafar

Reputation: 449

Add Newtonsoft reference in my MVC project solves the problem for me.

Upvotes: 2

samira riazati
samira riazati

Reputation: 525

I had this error myself, and first used Update-Package –reinstall Newtonsoft.Json -IncludePrerelease it didn't work, then used Install-Package Newtonsoft.Json . it worked.

Upvotes: 1

Colin
Colin

Reputation: 1836

In my case, the following code was present in my local debug version of the solution, but not in my live server version of code. Adding the code to my server Web.config file fixed the problem.

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" />
    <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
  </dependentAssembly>
</assemblyBinding>

Upvotes: 0

Matt Johnson-Pint
Matt Johnson-Pint

Reputation: 241485

Run Update-Package Newtonsoft.Json -Reinstall

It should remove the reference to your 4.5 version, and reinstall the newer version referenced in your package.config. It will also update the binding redirect, which should then be as follows:

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

Since you said in your question that you already tried this, you might want to first try removing the existing reference manually. You might also want to make sure the files aren't read-only on disk, or otherwise locked by source control.

Upvotes: 1

Ronald Ramos
Ronald Ramos

Reputation: 5460

  1. In your VS solution explorer, remove the Newtonsoft.Json reference.
  2. Download the 6.0 binary files at Newtonsoft binary files here
  3. Extract the files
  4. Add the Newtonsoft library manually. From Visual Studio, right click Reference and select Add Reference
  5. Click Browse
  6. Navigate to the extracted files under Net45 and select Newtonsoft.Json.dll
  7. If it does not work try using Net40 instead by going through the whole procedure again.

Upvotes: 0

codeWorm
codeWorm

Reputation: 51

run this command in the package manager console:

PM> Install-Package Newtonsoft.Json -Version 6.0.1

Upvotes: 0

Related Questions