Datei oder Assembly 'Newtonsoft.Json, Version = 4.5.0.0, Kultur = neutral, PublicKeyToken = 30ad4fe6b2a6aeed' konnte nicht geladen werden.

233

Ich erhalte den Fehler

System.IO.FileLoadException: Datei oder Assembly 'Newtonsoft.Json, Version = 4.5.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)

für meinen CI Build

Lösung, die ich versucht habe

<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>

Es hat auch nicht funktioniert

user3437755
quelle
Der Fehler bedeutet, dass .NET die Json.NET- Bibliothek nicht finden konnte . Hast du es installiert?
TypeIA
22
Genau das gleiche Problem - macht mich verrückt. Lassen Sie mich wissen, wenn Sie eine Lösung finden
Dean Chalk
Eigentlich hat das Hinzufügen, was Sie versucht haben, das Problem gelöst.
h.alex
Verwenden Sie die Konsolidierungsoption im NuGet-Paketmanager, um sicherzustellen, dass die Versionen nicht auseinander driften.
Niico
Dies ist das einzige, was für mich funktioniert hat: github.com/Redth/PushSharp/issues/361#issuecomment-181387928
RichC

Antworten:

237

Führen Sie in der Paketmanager-Konsole Folgendes aus : Update-Package –reinstall Newtonsoft.Json.

AKTUALISIEREN

Ich habe dies ursprünglich als Kommentar gepostet, aber wie @OwenBlacker vorgeschlagen hat, werde ich es einfach hier einfügen:

Wenn Sie danach immer noch eine Fehlermeldung erhalten, hat es für mich letztendlich funktioniert, dass ich den <dependentAssembly>Abschnitt von Json.Net aus meiner .configDatei gelöscht habe . Neu installieren bringt es zurück, wenn es nicht da ist und Sie es anscheinend löschen müssen. Bis es eine normale Lösung im Paket selbst gibt, ist dieser manuelle Schritt leider ein Muss.

Hinweis: Bitte lesen Sie die folgenden Kommentare, bevor Sie dies tun.

Laut Renés Kommentar unten BEACHTEN SIE, dass der in der Antwort angegebene Befehl das Paket in jedem Projekt in Ihrer Lösung neu installiert. Wenn Sie also das Newtonsoft.Json-Paket in mehreren Projekten verwenden und möglicherweise unterschiedliche Versionen verwenden, kann die Ausführung des obigen Befehls unerwünschte Folgen haben.

bobah75
quelle
7
Für alle, die dies lesen: Ich habe das getan und trotzdem den Fehler erhalten. Dann habe ich es irgendwie gelöst: Erstaunlicherweise musste ich den Abschnitt von Json.Net aus meiner Datei löschen . Neu installieren bringt es zurück, wenn es nicht da ist und Sie es anscheinend löschen müssen. Bis es eine normale Lösung im Paket selbst gibt, ist dieser manuelle Schritt leider ein Muss. <dependentAssembly>.config
Ofer Zelig
@OferZelig Du solltest das als separate Antwort posten, damit es die positiven Stimmen (und vor allem die Aufmerksamkeit) erhält. Nicht zuletzt, weil es auch bei mir funktioniert hat :)
Owen Blacker
@ OwenBlacker danke. Aber weil es bereits viele Antworten gibt, gehen meine verloren. Und diese Antwort ist ziemlich gut, es ist nur so, dass wenn es nicht funktioniert, mein Kommentar es "vervollständigt". Weißt du was? Ich denke, ich werde nur die ursprüngliche Antwort bearbeiten. Wichtiger als einen eigenen Repräsentanten zu gewinnen.
Ofer Zelig
43
Beachten Sie, dass der in der Antwort angegebene Befehl das Paket in jedem Projekt Ihrer Lösung neu installiert . Wenn Sie also das Newtonsoft.Json-Paket in mehreren Projekten verwenden und möglicherweise unterschiedliche Versionen verwenden, kann die Ausführung des obigen Befehls unerwünschte Folgen haben.
René
Gelöst! Für mich hatte ich v6 in einem Projekt installiert, die Neuinstallation vom Paketmanager brachte es auf v7.
JV-Dev
123

Wenn Sie Probleme mit der Version Newtonsoft.Json v4.5 haben, versuchen Sie dies in web.config oder app.config:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
       <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>
    </assemblyBinding>
</runtime>

WICHTIG : Überprüfen Sie, ob das configurationTag Ihrer Konfigurationsdatei kein Namespace-Attribut hat (wie in https://stackoverflow.com/a/12011221/150370 vorgeschlagen ). Andernfalls werden assemblyBindingTags ignoriert.

ZeroDotNet
quelle
3
Für mich war das manuelle Löschen des Inhalts des Bin-Ordners nach dem Bereinigen (wodurch dieser nicht geleert wird) der Trick, nachdem ich diese Antwort angewendet hatte.
Mikaël Mayer
Vielen Dank dafür! :)
Kamron K.
Funktioniert super! Ab dem 04.07.15 ist die aktuelle Version von Newtonsoft.Json 7.0.0 und newVersion="6.0.0.0"muss daher auf die von newVersion="7.0.0.0"Ihnen verwendete Version geändert werden
Moses Machua
3
Diese Notiz im Namespace ... Ich könnte dich umarmen. Ich habe Stunden damit verbracht, ohne zu wissen, dass die verbindlichen Weiterleitungen deswegen ignoriert wurden.
Brian
1
Der Hinweis zum Namespace ist so wichtig, dass er eine eigene Antwort sein kann. Vielen Dank.
Beawolf
42

Der entscheidende Punkt ist die Referenzierung der richtigen Version in Ihrer Konfigurationsdatei.

Schritte;

1- Sehen Sie sich die Version Ihrer Newtonsoft.Json.dll in der Projektreferenzeigenschaft an, unabhängig von der Version in Ihrem Paketordner (zum Beispiel ist meine Version 7.0.1 und die Referenzversion ist 7.0.0.0).

2- Sehen Sie sich an, was das Projekt in der Ausnahme von Ihnen erwartet (meins ist 6.0.0.0).

3- Fügen Sie Ihrer Konfigurationsdatei die abhängige Assembly hinzu, wie sie sein sollte.

  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json"  publicKeyToken="30AD4FE6B2A6AEED" culture="neutral"/>
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="7.0.0.0"/>
  </dependentAssembly>
Kadir Can
quelle
Entschuldigung, Sie können nur eine Stimme abgeben. Ihr Punkt (zum Beispiel meiner ist 7.0.1 und die Referenzversion ist 7.0.0.0) hat einen großen Unterschied gemacht. Ich hätte mehr gegeben ..... Danke :)
Zaker
Das hat bei mir funktioniert. Ich habe die Version auf 7 aktualisiert, aber es lief wirklich Version 8, also habe ich gerade die neue Version auf 8.0 geändert, danke!
Keith
Obwohl 8.0.3 installiert wurde (wie im Nuget-Paketmanager angegeben), ist die DLL unter den Referenzen immer noch 8.0.0. Also habe ich in meiner web.config zu 8.0.0.0 gewechselt. Seltsam, wie das gestern funktioniert hat, als ich alles veröffentlicht habe und heute Morgen funktioniert es nicht mehr.
CularBytes
24

Ich hatte kein Glück mit einer der hier vorgestellten Lösungen (Deinstallieren, Neuinstallieren, Löschen von Referenzen, Erstellen von BindingRedirects usw.). Ich musste zu einer alten Version von Newtonsoft zurückkehren. Version 5.0.6 hat schon früher funktioniert, also habe ich es versucht. Ich musste diese beiden Befehle in die Paketkonsole eingeben:

uninstall-package newtonsoft.json -force

install-package newtonsoft.json -version "5.0.6"

Die -forceOption im ersten Befehl ist erforderlich, um die Deinstallation zu erzwingen. Abhängigkeiten mit anderen Assemblys verhindern die Deinstallation ohne diese.

Karl Hoaglund
quelle
Lief wie am Schnürchen. Hatte den Fehler in meinem MVC 4-Projekt. Fast auf den nativen Serializer umgestellt.
Kees C. Bakker
danke, ich musste nur -version "5.0.6" in -pre ändern: install-package newtonsoft.json -pre
thiago.adriano26
22

Ich habe das Problem beim Hinzufügen dieser Bindungsumleitung zu meiner .config-Datei behoben:

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

Die Fehlermeldung beschwert sich darüber, dass Version 4.5.0.0 nicht gefunden wurde. Die aktuelle Version von Newtonsoft.Json ist 6.0.0.0, daher sollte die Umleitung von 4.5 auf 6.0 erfolgen, nicht umgekehrt

MiMo
quelle
Ja, das hat mein Problem gelöst. So seltsam die Menge an Problemen, die JSON.NET verursacht. Aber sobald es losgeht, ist es eine Traummaschine. Vielen Dank +1
Piotr Kula
Ihr Code-Snippet hat mir klar gemacht, dass das Element 'AssemblyBinding' fehlt. Danke
Riga
21

Ich denke, Sie zeigen auf das falsche Ziel, ändern Sie es auf 4.5 anstelle von 6.0

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

Das sollte funktionieren.

BrunoLM
quelle
1
Umbraco 7 benötigte 4.5.0.0, daher half dies, es zum Laufen zu bringen
MagicalArmchair
19

Ich habe ein paar Tage damit verbracht, dieses frustrierende Problem zu lösen. Ich habe so ziemlich alles ausprobiert, was im Web zu finden ist. Schließlich stellte ich fest, dass dieser Fehler (wie in meinem Fall) durch die verschiedenen .Net-Zielprojektversionen (4.5 und 4.5.1) in einer Lösung verursacht werden kann. Die folgenden Schritte haben es für mich behoben:

  1. Überprüfen Sie die .NET-Version jedes Projekts, das in Ihrer Lösung enthalten ist. Klicken Sie einfach mit der rechten Maustaste auf Projekt und gehen Sie zu Properties.

Geben Sie hier die Bildbeschreibung ein

  1. Stellen Sie nach Möglichkeit für alle Projekte die gleiche .NET-Version ein . Wenn nicht, versuchen Sie zumindest, das Startup-Projekt zu ändern (für mich war dies dasjenige, das die Probleme verursacht hat).

  2. Entfernen Sie alle Newtonsoft.JsonPackungen aus der Lösung.

    uninstall-package newtonsoft.json -force

  3. Aktualisieren Sie alle Newtonsoft.JsonVersionen in allen packages.configDateien wie folgt

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

  4. Neuinstallation Newtonsoft.Jsonvon "Package Manager Console" mit:

    install-package newtonsoft.json

  5. Erstellen Sie die Lösung neu

(Optional) 7. Wenn Sie das Startprojekt geändert haben, geben Sie es erneut zurück

ekostadinov
quelle
12
uninstall-package newtonsoft.json -force
install-package newtonsoft.json

Hab den Trick für mich gemacht :)

Chiranjeeb
quelle
1
Das hat auch für mich den Trick getan. Die webconfig-Datei wurde automatisch auf die richtige Version aktualisiert.
Shaakir
Mir auch, das hat wirklich geholfen.
Mike Malter
11

Wenn Sie mehrere Projekte in derselben Lösung und Bibliothek der einen anderen Prüfung verwenden, haben alle Projekte dieselbe Version von Newtonsoft.Json

Fatih
quelle
Das war mein Problem. Sehr frustrierend, alle oben genannten Antworten durchzugehen und keine Ergebnisse zu erzielen. Endlich habe ich es herausgefunden, als ich mir die Mühe gemacht habe, die Version der DLL in meinem Build-Ordner zu überprüfen.
10

Entfernen Sie die Newtonsoft.Json-Assembly aus der Projektreferenz und fügen Sie sie erneut hinzu. Sie haben die DLL wahrscheinlich versehentlich gelöscht oder ersetzt.

helb
quelle
Dieser Ansatz funktioniert gegen ein Xamarin Forms iOS-Projekt, bei dem ich das NuGet-Paket gelöscht und erneut hinzugefügt habe. Vielen Dank.
Der Senator
9

Ich habe einen WebApi-REST-Service-Client geschrieben. Daher wurde dieser Fehler durch das manuelle Hinzufügen von Verweisen zu System.Net.Httpund System.Net.Http.FormattingAssemblys über Verweis hinzufügen verursacht , wenn ich das Microsoft.AspNet.WebApi.ClientPaket über NuGet hätte hinzufügen sollen . Siehe auch diese Antwort auf eine andere Frage .

mschwaig
quelle
8

Sie haben 2 verschiedene Versionen der JSON.NET-Bibliothek in Ihrer Lösung. Um dies zu lösen, sollten Sie sie auf die neueste Version aktualisieren. Folge diesen Schritten:

1-Öffnen Sie den Solution Explorer. 2-Klicken Sie mit der rechten Maustaste auf den Lösungsnamen. 3-Wählen Sie Nuget-Pakete für Lösung verwalten aus. 4-Wählen Sie Updates aus dem Menü aus. 5-Aktualisieren Sie das JSON.NET-Paket

Dadurch wird Ihr Problem behoben.

Link: Datei oder Assembly 'Newtonsoft.Json, Version = 7.0.0.0, Kultur = neutral, PublicKeyToken = 30ad4fe6b2a6aeed' oder eine ihrer Abhängigkeiten konnte nicht geladen werden

mohammad
quelle
Der einfachste und sicherste Weg, um dieses Problem zu beheben. Danke @mohammad
Deanwilliammills
7

Stellen Sie die richtige Version auf dem CI-Computer bereit

Dies zeigt Ihnen, dass der Assembly Loader eine andere Version der Newtonsoft.JsonAssembly gefunden hat, die nicht mit der Referenz übereinstimmt, die Sie in Ihrem Projekt erstellt haben. Um die Assembly korrekt zu laden, müssen Sie die Assembly entweder neben Ihrem kompilierten Code bereitstellen oder die richtige Version der Assembly auf dem Zielcomputer (dh im GAC) installieren.

Alternative: Stellen Sie sicher, dass sich die Konfiguration in der richtigen Datei befindet

Wenn Sie die aktuelle Lösung beibehalten und eine Assembly mit einer anderen Version laden möchten, stellen Sie sicher, dass sich die von Ihnen veröffentlichte Konfiguration in der richtigen .configDatei befindet. Denken Sie daran, dass es keine xpto.dll.configgibt. Eine von einer Anwendung geladene DLL verwendet immer die Konfigurationsdatei der laufenden Anwendung.

Miguel Angelo
quelle
6

Normalerweise sollte das Hinzufügen der Bindungsumleitung dieses Problem lösen, aber es hat bei mir nicht funktioniert. Nachdem ich ein paar Stunden lang meinen Kopf gegen die Wand geschlagen hatte, stellte ich fest, dass ein xmlns-Attribut Probleme in meiner web.config verursachte. Nach dem Entfernen des xmlns-Attributs vom Konfigurationsknoten in Web.config funktionierten die Bindungsumleitungen wie erwartet.

http://www.davepaquette.com/archive/2014/10/02/could-not-load-file-or-assembly-newtonsoft-json-version4-5-0-0.aspx

David Paquette
quelle
5
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json"
        publicKeyToken="30AD4FE6B2A6AEED" culture="neutral"/>
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="7.0.0.0"/>
  </dependentAssembly>
</assemblyBinding>

Funktioniert für mich .... fügen Sie einfach die Version, die Sie verwenden, in newVersion ein, dh (newVersion = "7.0.0.0")

ali
quelle
Hatte dieses Problem vor einiger Zeit und dies wurde mit einem Schlag behoben. Vielen Dank.
GutierrezDev
5

Lösung schließen.

Öffnen Sie packages.configund *.csprojmit Texteditor und löschen Sie jede Zeile haben Newtonsoft.Json

Ex:
<Reference Include="Newtonsoft.Json,Version=9.0.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net40\Newtonsoft.Json.dll</HintPath> <Private>True</Private> </Reference>

Oder <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net40" />

Öffnen Sie die Lösung erneut und installieren Sie Newtonsoft.Json von neu Install-Package Newtonsoft.Json

Es funktioniert für mich.

Trương Quốc Khánh
quelle
es funktioniert irgendwann, aber in den kommenden Builds trat dieses Problem erneut auf
Heemanshu Bhalla
Kein Problem, wenn Sie es nicht aktualisieren, haha. Erstellen Sie ein Papierkorbprojekt und installieren Sie Newtonsoft.Json.dll, kopieren Sie es (Datei-DLL) und fügen Sie es Ihrer Projektreferenz hinzu.
Trương Quốc Khánh
4

Wir hatten genau das gleiche Problem, das Sie erwähnt haben. Wir verwenden nunit, um Tests über CI auszuführen, und nunit führt nun eine Datei mit dem Namen tests.nunit aus, die eine Liste der auszuführenden Test-DLL-Fixtures beschreibt.

Jedes Testgerät hatte seine eigene Konfigurationsdatei, aber wenn die Datei "tests.nunit" durchlaufen wird, scheinen die Bindungsumleitungen ignoriert zu werden. Die Lösung bestand darin, die Bindungsumleitungen zu einer neuen Konfigurationsdatei "tests.config" hinzuzufügen, die sich neben der Datei "tests.nunit" befand.

declyne
quelle
können Sie näher darauf eingehen?
KirstieBallance
4

Ich habe die gleiche Art von Problem. Und ich habe es auch folgendermaßen gelöst: Gehen Sie zu TOOLS > NuGet Package Manager und wählen Sie Package Manager Console . Führen Sie abschließend die folgenden zwei Befehle aus :)

  1. Deinstallationspaket newtonsoft.json -force
  2. Installationspaket newtonsoft.json
Masud Shrabon
quelle
4

Sie sollten die Datei web.config auf dem Server aktualisieren. Wenn Nuget NewtonSoft installiert, aktualisieren Sie diese Datei einschließlich dieses Codes

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <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>
</assemblyBinding>

oaamados
quelle
In meinem Fall war das genau meine Lösung, in app.config. "Assembly-Versionen können in Anwendungs-, Publisher-Richtlinien- oder Computerkonfigurationsdateien umgeleitet werden."
Datps
4

Überprüfen Sie einfach die Version der Newtonsoft.Json Newtonsoft-Eigenschaften

Dann müssen Sie diese Version in Ihrem Web - Config hinzuzufügen (in meinem Fall 8.0.0.0) Web Config

Gerald Stanley Padgett Espinoz
quelle
3

Ich habe den Fehler gemacht, eine NewtonSoft-DLL-Datei für .Net 4.5 hinzuzufügen.

Mein Hauptprojekt war 4.5, aber als ich meiner Lösung ein zusätzliches Projekt hinzufügte, fügte es es seltsamerweise als .NET 2.0-Projekt hinzu ... und als ich versuchte, NewtonSofts 4.5-DLL damit zu verwenden, bekam ich dieses "Newtonsoft.Json konnte nicht" 't nicht gefunden "Fehler.

Die Lösung bestand (natürlich) darin, dieses neue Projekt von .Net 2.0 auf 4.5 zu ändern.

Mike Gledhill
quelle
3

In meinem Fall bezog sich das Hauptprojekt immer noch auf eine alte Version von Newtonsoft.Json, die im Projekt nicht mehr vorhanden war (angezeigt durch ein gelbes Ausrufezeichen). Das Entfernen der Referenz löste das Problem, es war keine BindingRedirect erforderlich.

IngoB
quelle
3

Ich hatte genau das gleiche Problem mit Version 7.0.0.0 und die Bibliothek, die mein Problem verursachte, war Microsoft.Rest.ClientRuntime, die sich trotz des richtigen Abhängigkeitsmanagements in Nugget (irgendwie auf die falsche Version (6.0.0.0) von Newtonsoft.json bezog). Die richtige Version von newtonsoft.json (7.0.0.0) wurde installiert.

Ich habe dieses Problem gelöst, indem ich die Umleitung von 6.0.0.0 auf 7.0.0.0 (von Kadir Can) in der Konfigurationsdatei angewendet habe:

<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="7.0.0.0" />

----> Nach ein paar Tagen, ohne etwas zu ändern, kam es wieder zu demselben Fehler. Ich habe Version 6.0.0.0 installiert und auf 7.0.0.0 aktualisiert. Es funktioniert jetzt einwandfrei.

Lazizanie
quelle
Hat für mich gearbeitet. Installierte Version Newtonsoft Json 7.0.1 (Beta), aber die generierte Konfiguration zeigte auf 6.0.0.0, was nicht korrekt war. Vielen Dank!
Dhanuka777
2

In meinem Fall habe ich dies nach dem Herunterladen der Assembly und dem Hinzufügen des Verweises zum Projekt gelöst, indem ich die DLL entsperrt habe, bevor ich den Verweis zum Projekt hinzugefügt habe.

Navigieren Sie im Windows Explorer zum DLL-Speicherort, klicken Sie mit der rechten Maustaste auf die DLL und wählen Sie dann "Eigenschaften". Auf einer der Registerkarten befindet sich eine Schaltfläche zum Entsperren. Anschließend können Sie die Referenz hinzufügen, und die Baugruppe wird korrekt geladen.

VorTechS
quelle
2

Klicken Sie mit der rechten Maustaste auf Ihr Projekt, wählen Sie Nuget-Pakete verwalten, geben Sie newtonsoft in das Suchfeld ein und installieren Sie die neueste Version. Führen Sie dann Ihre App aus

uche Godfrey
quelle
2

Ich hatte den gleichen Fehler und kämpfte stundenlang damit. Ich hatte ein Web-API-Projekt, das Newtonsoft.json verwendet, und ein anderes UnitTest-Projekt für das Web-API-Projekt. Das Unit-Test-Projekt benötigte auch die Referenz Newtonsoft.json. Aber beim Hinzufügen des Links bekam ich die obige Ausnahme.

Ich habe es schließlich gelöst, indem ich das folgende Code-Snippet in die app.config des Unit-Test-Projekts eingefügt habe:

<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>
mukulsharma1146
quelle
<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>
Mukulsharma1146
Ich hatte das gleiche Problem, als ich Nestwonsoft.Json aktualisierte, während ich noch eine alte Version von WebAPI verwendete, und dies löste es. Vielen Dank!
Gavin.Paolucci.Kleinow
2

Ein weiteres heimtückisches Problem besteht darin, dass Bindungsumleitungen anscheinend nur unbemerkt fehlschlagen können, wenn das Element eine falsche Konfiguration für andere abhängige Assembly-Elemente aufweist.

Stellen Sie sicher, dass Sie nur ein Element unter jedem Element haben.

In einigen Fällen generiert VS Folgendes:

  <dependentAssembly>
    <assemblyIdentity ...
    <assemblyIdentity ...
  </dependentAssembly>

Anstatt

  <dependentAssembly>
    <assemblyIdentity ...
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity ...
  </dependentAssembly>

Ich habe lange gebraucht, um zu erkennen, dass dies das Problem war!

Daniel
quelle
2

Der folgende Abschnitt fügt sich in Ihre web.config ein

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
       <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>
    </assemblyBinding>
</runtime>
Jaydeep Shil
quelle
2

Wenn der Fehler lokal verschwindet und weiterhin auf dem Server angezeigt wird, besteht die mit mir funktionierende Lösung darin, den Ordner bin und die Dateien packages.config und web.config zu löschen und diese Dateien erneut hochzuladen

Ahmad Alaa
quelle