wake-up-neo.com

Datei oder Assembly System.Net.Http Version 4.1.1.0 konnte nicht geladen werden

Ich portiere eine Net Framework 4-DLL zu Net Core . Beim Portieren meines Unit-Tests-Projekts erhalte ich eine Ausnahme, in der einige spezifische Tests (nicht alle) ausgeführt werden.

System.IO.FileLoadException: Datei oder Assembly 'System.Net.Http, Version = 4.1.1.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Die Manifestdefinition der gefundenen Assembly stimmt nicht mit der Assemblyreferenz überein. (Ausnahme von HRESULT: 0x80131040)

Dies ist das project.json für meine DLL

 {
  "version": "1.0.0-*",

  "dependencies": {
    "log4net": "2.0.7",
    "NETStandard.Library": "1.6.1",
    "Newtonsoft.Json": "9.0.1",
    "StackExchange.Redis": "1.2.1"
  },

  "frameworks": {
    "netstandard1.6": {
      "imports": "dnxcore50"
    }
  }
}

Und dies ist Packages.config für das Unit-Test-Projekt

<packages>
  <package id="Castle.Core" version="4.0.0" targetFramework="net462" />
  <package id="log4net" version="2.0.7" targetFramework="net462" />
  <package id="Microsoft.Win32.Primitives" version="4.0.1" targetFramework="net462" />
  <package id="Moq" version="4.7.1" targetFramework="net462" />
  <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net462" />
  <package id="StackExchange.Redis" version="1.2.1" targetFramework="net462" />
  <package id="System.Diagnostics.DiagnosticSource" version="4.0.0" targetFramework="net462" />
  <package id="System.IO" version="4.1.0" targetFramework="net462" />
  <package id="System.IO.FileSystem" version="4.0.1" targetFramework="net462" />
  <package id="System.IO.FileSystem.Primitives" version="4.0.1" targetFramework="net462" />
  <package id="System.IO.FileSystem.Watcher" version="4.0.0" targetFramework="net462" />
  <package id="System.Linq" version="4.1.0" targetFramework="net462" />
  <package id="System.Net.Http" version="4.1.1" targetFramework="net462" />
  <package id="System.Net.NameResolution" version="4.0.0" targetFramework="net462" />
  <package id="System.Runtime" version="4.1.0" targetFramework="net462" />
  <package id="System.Runtime.Extensions" version="4.1.0" targetFramework="net462" />
  <package id="System.Security.Cryptography.Algorithms" version="4.2.0" targetFramework="net462" />
  <package id="System.Security.Cryptography.Encoding" version="4.0.0" targetFramework="net462" />
  <package id="System.Security.Cryptography.Primitives" version="4.0.0" targetFramework="net462" />
  <package id="System.Security.Cryptography.X509Certificates" version="4.1.0" targetFramework="net462" />
  <package id="System.Text.RegularExpressions" version="4.1.0" targetFramework="net462" />
  <package id="System.Threading.Thread" version="4.0.0" targetFramework="net462" />
</packages>
27
Jawen

Behebung des Problems durch Aktualisierung von System.Net.Http auf 4.3.1

31
Jawen

Ich bekam das Problem und erkannte, dass es zwei verschiedene Referenzen gab: Eine Referenz stammte aus meiner Projektbibliothek, und die zweite war eine Abhängigkeit von einer .NET-Standardbibliothek und daher ein Nuget-Paket. Die zu lösenden Schritte waren die folgenden:

  • Entfernen Sie die Referenz auf System.Net.Http (Projekt => Referenz hinzufügen => Referenz entfernen).
  • Behalten Sie die Nuget-Pakete System.Net und System.Net.Http bei 
  • Führen Sie Update-Package –reinstall System.Net.Http aus, um die Referenz wiederherzustellen.

Jetzt funktioniert es wieder. :) 

16
Jean

Mein Problem bestand darin, dass mein Dienst über eine Assembly verfügte, die einen Verweis auf eine neuere Version von System.Net.Http ..__ enthielt.

3
Grigory Bushuev

Gehen Sie zur app.config und entfernen Sie dort alle Zeilen, die auf System.Net.Http verweisen.

2
Shiroy

Ich hatte dieses Problem, während ich 10 Projekte hatte, die voneinander abhingen ... Das habe ich behoben, indem ich die Version hinzugefügt habe, nach der es in einem der Projekte gefragt wurde, die von .. abhängig war Es scheint, dass durch das Hinzufügen der Version die Version in anderen Projekten beim Wiederherstellen von ..__ behoben wurde.

Datei oder Assembly 'System.Net.Http, Version = 4.1.1.0, .__ konnte nicht geladen werden. Kultur = neutral, PublicKeyToken = b03f5f7f11d50a3a 'oder einer seiner Abhängigkeiten. Die angegebene Datei wurde vom System nicht gefunden.

Dann:

Datei oder Assembly 'System.Net.Http, Version = 4.1.1.1, .__ konnte nicht geladen werden. Kultur = neutral, PublicKeyToken = b03f5f7f11d50a3a 'oder einer seiner Abhängigkeiten. Die angegebene Datei wurde vom System nicht gefunden.

Also fügte ich hinzu "System.Net.Http": "4.1.1", In einem Projekt ..

Das Problem wurde behoben, während 8 Projekte wiederhergestellt wurden.

1
Assil

Der beste und einfachste Weg, dieses Problem zu beheben, ist eine verbindliche Weiterleitung.

Geben Sie einfach die oldVersion als 0.0.0.0-5.0.0.0 und die newVersion als 4.1.1.0 an

Wobei 4.1.1.0 Ihre Version ist.

1
Jacob Gaiski

Ich stimme Jean zu. Entfernen Sie die Referenz zu Assembly und fügen Sie über Nuget eine neue Referenz hinzu! Die aktuelle Version von System.Net.Http spielt keine Rolle ..__ Nach dem Entfernen der Referenz auf Assembly funktioniert alles in Ordnung, Version 4.3.2

Und jetzt die Junior-Programmierer-Lösung .... Überprüfen Sie noch einmal, ob Sie die von Jawen und Jean vorgeschlagenen Aktualisierungen im Nuget Package Manager an den richtigen Stellen vornehmen. Denken Sie daran, dass Sie möglicherweise eine Lösung für Ihr Projekt und ein Testprojekt haben. Überprüfen Sie daher, ob beide Verweisgruppen aktualisiert werden.

0
Brian H

Vielleicht offtop, aber mein Problem war, dass Azure das neueste .NET Framework nicht unterstützte.

0
Jerry Smith