问题
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
According to the answers from the similar questions, I have tried followings:
- Reinstalling package using
Update-Package –reinstall Newtonsoft.Json
- Removing
dependentAssembly
config fromWeb.config
forNewtonsoft.Json
- Changing
newVersion
to6.0.0.0
and7.0.0.0
independentAssembly
. Doing so gave birth to new error. - Also tried
Get-Project -All | Add-BindingRedirect
. It changesnewVersion
forNewtonsoft.Json
to4.5.0.0
. But issue remains unresolved.
Please help me fixing this.
回答1:
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
回答2:
Add Newtonsoft reference in my MVC project solves the problem for me.
回答3:
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.
回答4:
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.
回答5:
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.
回答6:
run this command in the package manager console:
PM> Install-Package Newtonsoft.Json -Version 6.0.1
回答7:
- In your VS solution explorer, remove the Newtonsoft.Json reference.
- Download the 6.0 binary files at Newtonsoft binary files here
- Extract the files
- Add the Newtonsoft library manually. From Visual Studio, right click Reference and select Add Reference
- Click Browse
- Navigate to the extracted files under Net45 and select Newtonsoft.Json.dll
- If it does not work try using Net40 instead by going through the whole procedure again.
回答8:
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>
回答9:
Change the config to as mentioned below:
回答10:
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>
来源:https://stackoverflow.com/questions/32806744/could-not-load-file-or-assembly-newtonsoft-json-or-one-of-its-dependencies