it-swarm.com.de

Datei oder Assembly 'Newtonsoft.Json, Version = 9.0.0.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed' oder eine ihrer Abhängigkeiten konnte nicht geladen werden

Ich habe ein WinJS-Projekt, das zuvor unter Windows 8.1 mit VS 2013 erstellt wurde. 

Ich habe dieses Projekt kürzlich auf Universal Windows 10 aktualisiert, indem ich ein leeres Javascript Universal Windows 10-Projekt erstellt und dann alle meine Dateien aus dem alten Projekt hinzugefügt habe. 

Ich habe Windows-Laufzeitkomponenten und auch eine Klassenbibliothek für SQLite. 

Ich habe Universal Windows Runtime Component und Universal Class Library hinzugefügt und alle meine Dateien aus dem alten Projekt an die entsprechenden Stellen kopiert.

Irgendwie gelang es mir, alle Build-Fehler zu entfernen. 

Ich habe alle erforderlichen SQLite-Net, SQLite für Universal Windows Platform, Newtonsoft usw. installiert.

Wenn ich jedoch die Anwendung ausführe und eine native Methode in der Windows-Laufzeitkomponente aufrufe, werden seltsame Fehler wie folgt angezeigt:

An exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.ni.dll but was not handled in user code.

Additional information: Could not load file or Assembly 'Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.

 enter image description here

Newtonsoft Version ist: 9.0.1

Meine project.json -Datei der Windows-Laufzeitkomponente hat Folgendes:

  {
  "dependencies": {
    "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0",
    "Newtonsoft.Json": "9.0.1"
  },
  "frameworks": {
    "uap10.0": {}
  },
  "runtimes": {
    "win10-arm": {},
    "win10-arm-aot": {},
    "win10-x86": {},
    "win10-x86-aot": {},
    "win10-x64": {},
    "win10-x64-aot": {}
  }
}

Meine Visual Studio-Version lautet:

 enter image description here

Ich habe versucht, alle Newtonsoft Json zu entfernen und neu zu installieren, aber kein Glück.

21

Ich habe eine einfache Demo erstellt und dieses Problem reproduziert. Es scheint, dass die WinRT-Komponente die korrekte Assembly von Newton.Json nicht gefunden hat. Die Problemumgehung besteht vorübergehend darin, die Newtonsoft.json.dll-Datei manuell hinzuzufügen. Sie können dies durch folgende Schritte erreichen:

  1. Klicken Sie mit der rechten Maustaste auf Referenzen -> Referenz hinzufügen -> Durchsuchen ... -> Suchen Sie nach C:\Benutzer\.nuget\packages\Newtonsoft.Json\9.0.1\lib\portable-net45 + wp80 + win8 + wpa81\Newtonsoft.json. dll-> Klicken Sie auf die Schaltfläche Hinzufügen.

  2. Erstellen Sie Ihr Runtime Component-Projekt neu und führen Sie es aus. Dieser Fehler sollte verschwunden sein.

23

Ich habe dieses Problem durch Hinzufügen von Newtonsoft.Json zum NuGet des Startprojekts gelöst.

14
Jfly

Ich hatte das gleiche Problem. Um dieses Problem zu lösen, überprüfen Sie in References Ihres Projekts, ob die Version von Newtonsoft.Json aktualisiert wurde (möglicherweise nicht), entfernen Sie sie und überprüfen Sie Ihre entweder Web.config oder App.config, wenn das Element abhängigeAssembly wie folgt aktualisiert wurde:

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

Danach das Projekt erneut erstellen (die dll wird durch die korrekte Version ersetzt)

13
Richard Lee

Ich hatte vor einiger Zeit ein ähnliches Problem mit einer neuen ASP.NET Core-Anwendung. Es stellte sich heraus, dass eine der referenzierten Bibliotheken eine Version von Newtonsoft.Json verwendete, die niedriger als 9.0.0.0 war. Also habe ich die Version für diese Bibliothek aktualisiert und das Problem wurde behoben. Nicht sicher, ob Sie das hier auch tun können

6
hbulens

Ich verwende Visual Studio 2013 Update 2. In meinem Fall habe ich ein Webprojekt und ein Web Api-Projekt, ein Komponententestprojekt und andere Klassenbibliotheken in einer einzigen Lösung.

Ich habe ein paar Tage damit verbracht, das Problem zu lösen. Nachfolgend finden Sie die Schritt-für-Schritt-Lösung, die ich gefunden habe.

  1. Klicken Sie mit der rechten Maustaste auf Web Api Projekt. Wählen Sie "Als Startprojekt festlegen" aus.
  2. Klicken Sie mit der rechten Maustaste auf Web Api Projekt. Gehen Sie zu Eigenschaften (Alt + Eingabetaste).
  3. Wählen Sie auf der Registerkarte Anwendung im linken Menü Anwendung aus.
  4. Suchen Sie Target Framework. Ändern Sie es in 4.5.1 und speichern Sie. Es wird jedoch ein Fehler im Fenster "Fehlerliste" angezeigt. Nach dem Neuaufbau ist kein Fehler aufgetreten.
  5. Entfernen alle Newtonsoft.Json-Pakete aus der Lösung mithilfe der folgenden Abfrage von Package Manager Console (um sie zu erhalten Ansicht> Anderes Fenster> Package Manager Console).

uninstall-package newtonsoft.json -force

  1. NeuinstallationNewtonsoft.Json aus Package Manager Console

installationspaket newtonsoft.json

  1. Wenn Sie das neueste Update für Visual Studio 2013 installiert haben, tritt dieses Problem möglicherweise nicht auf. Da ich Update 2 verwende, habe ich beim Versuch, Newtonsoft.Json zu installieren, den folgenden Fehler festgestellt.

Das Paket 'Newtonsoft.Json 10.0.3' erfordert die NuGet-Clientversion '2.12' oder höher, aber die aktuelle NuGet-Version lautet '2.8.50313.46'

  1. Um dieses Problem zu lösen, müssen Sie die Package Manager Console aktualisieren. Muss

Extras> Erweiterungen und Updates ...> Wählen Sie im linken Fensterbereich Updates> Visual Studio Gallery aus.

  1. Update die NuGet Package Manager-Erweiterung. Folgen Sie den Schritten, die danach folgen.

  2. Danach wird in Visual Studio ein Neustart ausgeführt.

  3. Führen Sie Schritt 6 erneut aus.

Nach der Installation wird packages.config mit der folgenden Zeile hinzugefügt

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

Nach der Installation wird web.config mit den folgenden Zeilen hinzugefügt

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

Es wird erfolgreich ausgeführt, wenn kein anderer Fehler vorliegt.

5
Kuntal Ghosh

Ein Update ist erforderlich Newtonsoft.Json -Version Gehen Sie zu Tools => NuGet Package Manager => Package Manager Console und geben Sie Install-Package Newtonsoft.Json -Version 12.0.2 im Package Manager Console-Fenster ein.

2
FARHAN KHAN

Bei meinen ASP.NET Core-Projekten sind ähnliche Probleme aufgetreten. Was passiert, ist, dass die .config-Datei im Ordner bin/debug folgendermaßen generiert wird:

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

Wenn ich die zweite BindungRedirect manuell hierüber ändere, funktioniert es:

<bindingRedirect oldVersion="9.0.0.0" newVersion="10.0.0.0" />

Nicht sicher, warum das passiert.

Ich verwende Visual Studio 2015 mit .Net Core SDK 1.0.0-preview2-1-003177.

2
HGHansen

Durch Hinzufügen der Bindungsumleitungskonfiguration für Newtonsoft.Json in Ihrer Konfigurationsdatei (web.config) wird das Problem behoben.

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

Da Sie Newtonsoft.Json Version 9 in Ihrem Fall haben, aktualisieren Sie die Version entsprechend in der Konfiguration.

Wenn diese Konfiguration nicht funktioniert, stellen Sie sicher, dass der Namespace (xmlns) in Ihrem Konfigurationstag korrekt ist, oder entfernen Sie den Namespace vollständig.

Assembly Binding Redirect funktioniert nicht

1
Varun Nair

Wir haben einen Tag gebraucht, um dieses Problem zu lösen. Die Lösung zwingt den Webservice dazu, Version 11.0.0 in Ihrer Datei web.config zu verwenden.

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

1
Sabri Meviş

Ich denke, AutoCAD hat meine entführt. Die Lösung, die für mich funktionierte, bestand darin, es zurück zu hijacken. Ich habe dies von https://forums.autodesk.com/t5/navisworks-api/could-not-load-file-or-Assembly-newtonsoft-json/td-p/7028055?profile.language=de - Ja, das Internet funktioniert auf mysteriöse Weise.

// in your initilizer ...
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.AssemblyResolve += new ResolveEventHandler(MyResolveEventHandler);

.....

private Assembly MyResolveEventHandler(object sender, ResolveEventArgs args)
{
    if (args.Name.Contains("Newtonsoft.Json"))
    {
        string assemblyFileName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\Newtonsoft.Json.dll";
        return Assembly.LoadFrom(assemblyFileName);
    }
    else
        return null;
}
0
CAD bloke

In meinem Fall war es ein Problem mit der Konfigurationsdatei web.config Auf meinem Computer, als ich die Newton-Version aktualisiert habe. Beim Hochladen zur Produktion zeigte die vorhandene web.config auf die alte Version. 

Nachdem ich die web.config aktualisiert hatte, funktionierte sie wieder.

<assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />
  </dependentAssembly>
0
user1418586

Es ist möglich, das Problem durch ein Update der 'Newtonsoft'-Version zu lösen.

In Visual Studio 2015 können Sie mit der rechten Maustaste auf "Lösung" klicken und "Nuget-Pakete für Lösung verwalten" auswählen, nach "Newtonsoft" suchen, eine aktuellere Version auswählen und auf "Aktualisieren" klicken.

0
Filipe Rosset

Dieses Problem konnte in meinem asp.net-mvc-Projekt behoben werden, indem meine Version von Newton.Json (alte Version = 9.0.0.0 auf neue Version 11.0.0.0) mit dem Paket-Manager aktualisiert wurde.

0
David Zagi