Erstens ist es nicht nur ein Duplikat. Keine der Antworten aus folgenden Fragen funktioniert für mich.
http://goo.gl/tS40cn
http://goo.gl/pH6v2T
Ich habe gerade alle meine Pakete mit Nuget Package Manager aktualisiert und bekam diese Fehlermeldung.
Datei oder Assembly 'Newtonsoft.Json, Version = 6.0.0.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Die Manifestdefinition der gefundenen Assembly stimmt nicht mit der Assemblyreferenz überein. (Ausnahme von HRESULT: 0x80131040)
Mein Paket Config hat:
<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" />
Web.config enthält diesen 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>
Eigenschaften aus Referenz für Newtonsoft.Json
Entsprechend den Antworten aus den ähnlichen Fragen habe ich folgendes versucht:
Update-Package –reinstall Newtonsoft.Json
erneut installierendependentAssembly
config von Web.config
für Newtonsoft.Json
entfernennewVersion
in 6.0.0.0
und 7.0.0.0
in dependentAssembly
. Dadurch entstand ein neuer Fehler.Get-Project -All | Add-BindingRedirect
. Es ändert newVersion
für Newtonsoft.Json
in 4.5.0.0
. Das Problem bleibt jedoch ungelöst.Bitte helfen Sie mir, das Problem zu beheben.
Ich weiß, das ist alt, aber ich bin gerade auf das gleiche Problem gestoßen. Mein Problem war, dass mehrere Projekte in der Lösung Newtonsoft.Json verwendeten, aber einige waren in unterschiedlichen Versionen. Ich habe alle auf den neuesten Stand gebracht (9.0.1 bei der Eingabe), und das Problem wurde behoben.
Auf jeden Fall ... Wenn sich noch jemand damit beschäftigt, aktualisieren Sie das Paket in JEDEM Projekt in der Lösung.
HTH
Nachdem ich viele der obigen (und einige andere Beiträge) ausprobiert hatte, deinstallierte ich mit dem Paketmanager alle folgenden Elemente aus dem betroffenen Projekt:
Microsoft.AspNet.WebApi
Microsoft.AspNet.Client
Microsoft.AspNet.Core
Microsoft.AspNet.WebHost
Newtonsoft.Json
Anschließend installierte Microsoft.AspNet.WebApi erneut. Anschließend wurden automatisch .Client, .Core, .WebHost, .Json installiert.
Hinzufügen von Newtonsoft-Referenz in meinem MVC-Projekt löst das Problem für mich.
Ich hatte diesen Fehler selbst und habe zuerst Update-Package –reinstall Newtonsoft.Json -IncludePrerelease
verwendet, es hat nicht funktioniert, dann habe ich Install-Package Newtonsoft.Json
verwendet. es funktionierte.
Update-Package Newtonsoft.Json -Reinstall
ausführen
Es sollte den Verweis auf Ihre Version 4.5 entfernen und die neuere Version erneut installieren, auf die in package.config verwiesen wird. Es wird auch die Bindungsumleitung aktualisiert, die dann wie folgt aussehen sollte:
<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>
Da Sie in Ihrer Frage gesagt haben, dass Sie dies bereits ausprobiert haben, möchten Sie zuerst versuchen, die vorhandene Referenz manuell zu entfernen. Möglicherweise möchten Sie auch sicherstellen, dass die Dateien nicht schreibgeschützt sind oder anderweitig von der Quellcodeverwaltung gesperrt sind.
Überprüfen Sie die 'Newtonsoft.Json'-Version in den Projektverweisen. Fügen Sie diese Version in der Web-Konfiguration hinzu. Es wird funktionieren. Zum Beispiel:. Ihr Webconfig sieht folgendermaßen aus:
<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>
Wenn Ihre Version in References '9.0.0.0' ist.
<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>
In meinem Fall war der folgende Code in meiner lokalen Debug-Version der Lösung enthalten, nicht jedoch in meiner Live-Server-Version des Codes. Durch Hinzufügen des Codes zu meiner Server-Datei Web.config wurde das Problem behoben.
<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>
führen Sie diesen Befehl in der Paket-Manager-Konsole aus:
PM> Install-Package Newtonsoft.Json -Version 6.0.1
Ändern Sie die Konfiguration wie unten beschrieben: