Datei oder Assembly Newtonsoft.json.dll konnte nicht geladen werden

8
  

"Datei oder Assembly konnte nicht geladen werden" Newtonsoft.Json, Version = 4.0.3.0,   Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed oder eines seiner   Abhängigkeiten. Die Manifestdefinition der lokalisierten Assembly funktioniert nicht   Ordnen Sie die Baugruppenreferenz zu. (Ausnahme von HRESULT: 0x80131040) ".

'NewtsoftJson.dll' Assembly ist für die Veröffentlichung auf Twitter erforderlich. Die verwendete Version ist 4.0.3.0.

Und die selbe Assembly (aber diff Version 4.0.0.0) wird als abhängige Assembly von facebook C # api (dll) verwendet. Die oben genannte Assembly (4.0.3.0) funktioniert jedoch nicht für beide Fälle (dh für die Veröffentlichung auf Twitter und für die Anmeldung bei Facebook). Um es zu lösen, erstellt ein separates Projekt für die Veröffentlichung auf Twitter und Verweis auf die Versammlung (4.0.3.0) separat (im Projekt für Twitter-Post). Und eine andere Version (4.0.0.0) wurde als Referenz im Hauptprojekt für Facebook hinzugefügt aber immer noch kommt der Fehler.Wenn Twitter-Projekt deaktiviert ist und lief dann funktioniert der Facebook-Login einwandfrei und umgekehrt.

Ich habe viel geforscht und folgendes versucht.

temporäre ASP.net-Dateien löschen saubere Lösung Computer neu starten

Versuchte sogar, die Assembly von gac zu deinstallieren (allerdings ist sie dort nicht registriert).

Bitte helfen Sie mir dabei, da es nicht funktioniert. Vielen Dank, S

    
Sagar 24.02.2012, 07:02
quelle

3 Antworten

8

Es ist nicht klar, was die Beziehungen der Projekte sind oder wann dieser Fehler auftritt, aber hier ist eine Vermutung.

Sie haben 3 Projekte, das Facebook-Projekt (Version 4.0.0.0), twitter-Projekt (Version 4.0.3.0) und ein Hauptprojekt, das beide Projekte referenziert. Möglicherweise können Sie diese Lösung erstellen, aber beim Ausführen der Assembly schlägt die Bindung fehl. Warum? weil das Standardverhalten das lokale Kopieren von Assemblies vor der Ausführung ist. Was passiert ist, dass das erste Projekt, um Kopien zu erstellen bin (sagen twitter) dann das zweite Projekt baut (Facebook), dann main. Am Ende der Version 4.0.0.0 befindet sich der Ordner "sitzender Ordner". Sobald Sie etwas von twitter aufrufen, das versucht, die Problemassembly zu verwenden, schlägt die Bindung fehl, da Sie länger auf die Version 4.0.3.0 der Assembly zugreifen können.

Es gibt ein paar Möglichkeiten, dies zu umgehen. Einer ist beide Baugruppen im GAC registrieren. Wenn das nicht machbar ist, sehen Sie sich die Assembly-Bindungsumleitung in Ihrer Konfigurationsdatei an. Eine andere Möglichkeit besteht darin, sich für das AssemblyResolve-Ereignis zu registrieren und die Assembly programmgesteuert zu laden.

    
mike z 24.02.2012, 08:25
quelle
8

Fügen Sie Ihrer app.config-Datei Folgendes hinzu:

%Vor%

innerhalb Ihrer <configuration></configuration> -Tags

    
Ayana 23.05.2013 18:34
quelle
0

Installieren Sie das Paket Newtonsoft in allen Projekten.

%Vor%     
André Monteiro 20.06.2016 12:12
quelle

Tags und Links