2014-02-07 4 views
7

I json.net in allen Projekten in meiner Lösung aktualisiert und nachdem ich diesen Fehler:Wie löst man diesen Konflikt von zwei vorhandenen JSON.net?

The type 'Newtonsoft.Json.JsonConvert' exists in both '\packages\Newtonsoft.Json.6.0.1\lib\net45\Newtonsoft.Json.dll' and 'c:\Program Files (x86)\Microsoft Visual Studio 12.0\Blend\Newtonsoft.Json.dll

Warum json.net aus der Mischung Ordnern zu laden, es versucht, und wie komme ich, um dieses Problem?

Danke.

+1

Löschen Sie die doppelte Referenz. – SLaks

+0

@SLaks Es wird nur einmal in meinem Projekt referenziert. Schlägst du vor, ich lösche es von einem Ort im Dateisystem? – Kyle

+0

Nein. Wo erhalten Sie diesen Fehler? – SLaks

Antwort

11

In meinem Fall war das Problem, dass es zwei Verweise auf zwei verschiedene Versionen von Newtonsoft.Json.dll in meinem Projekt gab. Dies wurde nicht ersichtlich, wenn Sie sich die Referenzen in der Solution-Strukturansicht ansehen: Sie müssen die csproj-Datei untersuchen.

dies zu beheben:

  1. Rechtsklick auf das Projekt in Visual Studio, und wählen Sie Unload Projekt
  2. die MSBuild-Datei für Verweise auf Newtonsoft.Json
  3. Löschen Sie den Verweis suchen, die ältere Version von Die Bibliothek
  4. Klicken Sie mit der rechten Maustaste auf das Projekt, und laden Sie es neu.
+0

Ich habe eine Drittanbieter-SDK-DLL, die jetzt diesen Fehler in meiner Lösung verursacht. Es benutzt eine viel ältere Version von Newtonsoft.Json.JsonConvert - wie soll ich damit umgehen? Mein Code ist seit langem etabliert und hat viele Hinweise darauf, meinen Code zwingen zu müssen, eine ältere Version zu verwenden, wäre für mich schrecklich. –

+0

Konkret: Der Typ 'JsonConvert' existiert sowohl in 'CSSNWebServiceSDK, Version = 1.0.6005.12454, Culture = neutral, PublicKeyToken = 21547a501d0bdb4b' als auch 'Newtonsoft.Json, Version = 8.0.0.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed' - leider Ich habe nur einen Verweis auf newtonsoft in meinem csproj und ich kann die andere DLL nicht entfernen :( –