web-dev-qa-db-de.com

Datei oder Assembly 'System.Net.Http.Formatting' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Das System kann den angegebenen Pfad nicht finden

Ich habe eine kleine MVC-App, die ich aus Übungsgründen benutze, aber jetzt stoße ich jedes Mal auf einen Fehler, wenn ich versuche zu debuggen:

Could not load file or Assembly 'System.Net.Http.Formatting' or one of its dependencies. 
The system cannot find the path specified.

Ich habe gegoogelt, kann aber keine Lösung finden. Ich verwende .NET 4.5.

Es kann nicht die DLL -Datei sein, da ich .Net 4.5 verwende.

120
Norris

Wenn ich einen NuGet-Fehler wie diese habe, mache ich normalerweise folgende Schritte:

  1. Gehen Sie zum Paketordner im Windows Explorer und löschen Sie ihn.
  2. Öffnen Sie Visual Studio und gehen Sie zu Tools> Library Package Manager> Package Manager-Einstellungen. Unter dem Element Package Manager auf der linken Seite befindet sich die Schaltfläche "Package-Cache löschen". Klicken Sie auf diese Schaltfläche und stellen Sie sicher, dass das Kontrollkästchen "NuGet darf fehlende Pakete während des Builds herunterladen" aktiviert ist.
  3. Reinigen Sie die Lösung
  4. Klicken Sie dann im Projektmappen-Explorer mit der rechten Maustaste auf die Lösung und aktivieren Sie die NuGet Package Restore
  5. Bauen Sie die Lösung auf

Bei all diesen Schritten werden fast immer alle Pakete und DLLs wiederhergestellt, die ich für mein MVC-Programm benötige.


BEARBEITEN >>>

Für Visual Studio 2013 und höher sollte Schritt 2) lauten:

  1. Öffnen Sie Visual Studio und gehen Sie zu Tools> Options> NuGet Package Manager. Auf der rechten Seite befindet sich die Schaltfläche "Cache-Cache löschen". Klicken Sie auf diese Schaltfläche, und stellen Sie sicher, dass die Kontrollkästchen für "NuGet-Download fehlender Pakete zulassen" und "Automatisch nach fehlenden Paketen beim Erstellen in Visual Studio prüfen" aktiviert sind.
156
Jordan_Walters
  • Entfernen Sie alle Codereferenzen auf System.Net.*.

  • im Paketfenster, 

    Install-Package Microsoft.AspNet.WebApi.Client

  • Reinigen Sie Ihr Projekt und bauen Sie es neu auf

131
user3919888

Ich habe ein Extra gefunden 

  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.2.28.0" newVersion="2.2.28.0" />
  </dependentAssembly>

in meiner web.config. entfernte das, damit es funktioniert. Einige andere Pakete, die ich installiert und dann entfernt habe, haben das Problem verursacht.

20
realPT

user3919888 wies mich in die richtige Richtung, aber ich musste Update-Package -reinstall Microsoft.AspNet.WebApi.Client in der Package-Manager-Konsole ausführen. Die Basisinstallation erkennt das Problem nicht, erkennt jedoch, dass das Paket bereits installiert ist und es nicht überschreibt.

Ich poste diese Antwort, weil dies so selten geschieht, dass ich am Ende google und diese Seite erreiche, bevor ich mich daran erinnere, was ich das letzte Mal getan habe.

13
longestwayround

Das Entfernen der folgenden Zeilen aus web.config hat mein Problem behoben. Beachten Sie, dass ich in diesem Projekt keine WebApi-Komponenten verwendet habe. Für andere kann diese Lösung nicht wie erwartet funktionieren.

  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
  </dependentAssembly>
12
Mahmoud Moravej
  1. Entfernen Sie alle Codeverweise auf System.Net. * 
  2. Deinstallation: Paket Microsoft.AspNet.WebApi und seine abhängigen. 
  3. Installieren Sie alle neu: Paket Microsoft.AspNet.WebApi und seine abhängigen. 
  4. Reinigen Sie Ihr Projekt und bauen Sie es neu auf
6
Sandeep

Wie ursprünglich in einem Kommentar von GeoMac vorgeschlagen und auf der Dokumentation von NuGet dokumentiert Folgendes funktionierte für mich, wenn keine der anderen Antworten funktionierte:

Tools/NuGet Package Manager/Paket-Manager-Konsole

Update-Package -ProjectName MyProjectName -reinstall
5
bbodenmiller

In meinem Fall hat keine der oben genannten Lösungen funktioniert. Ich löste mich durch Rechtsklick auf die Referenz 

System.Net.Http.Formatting

aus Visual Studio und setzen Sie die Eigenschaft Copy Local to true

Ich hoffe das ist irgendwie nützlich. 

3
Hugo Nava Kopp

Dieser ärgerliche Fehler wurde für mich behoben, indem Sie Visual Studio schließen und erneut öffnen. Dann die Lösung neu aufbauen und alles hat wieder funktioniert. Entschuldigung für die Mist-Antwort, aber ich denke, es ist eine Antwort wert, weil sie es für mich gelöst hat. 

1
andreasnico

Für mich war es so einfach wie

  1. Löschen Sie Microsoft.AspNet.WebApi.Client aus dem Paketordner in Windows Explorer
  2. Öffnen Sie Extras> NuGet Package Manager> Package Manager Console
  3. Klicken Sie auf die Schaltfläche "Wiederherstellen"
1
adam0101

Ich war da mit dem gleichen Problem konfrontiert 

System.Net.Http.Formatting

version, die in webconfig geschrieben wurde, war 5.0.3, aber im Bin-Ordner war die Bibliothek System.Net.Http.Formatting-Version 4.0.2

also habe ich einfach mit der gleichen bin ersetzt

 enter image description here

 enter image description here

mach einfach dieses saubere Projekt und baue

1

Das Hinzufügen von wenigen Zeilen in WebApi.config funktioniert für mich nach dem Aktualisieren des neuen Nuget-Pakets nicht

var setting = config.Formatters.JsonFormatter.SerializerSettings;
setting.ContractResolver = new CamelCasePropertyNamesContractResolver();
setting.Formatting = Formatting.Indented;

Vergiss nicht, Namespace hinzuzufügen:

using Newtonsoft.Json.Serialization; 
using Newtonsoft.Json;
0
ashish Vicky

VS2019: Extras -> Nuget Package Manager -> Package Manager-Einstellungen -> Aktivieren Sie im Abschnitt "Paketwiederherstellung" zwei Optionen. Gehen Sie danach zum Projektpaketordner und löschen Sie alle darin enthaltenen untergeordneten Ordner (für keinen Fehler mehr). Anschließend lädt Nuget alle Pakete neu herunter und das Projekt sollte ohne Referenz ausgeführt werden.

0
grandholy

Möglicherweise müssen Sie die Bibliotheksreferenz im Eigenschaftendialogfeld auf "Copy Local = True" setzen. Klicken Sie im Visual Studio auf "Verweise" und dann mit der rechten Maustaste auf die fehlende Referenz. Klicken Sie im Kontextmenü auf "Eigenschaften". Sie sollten die lokale Einstellung kopieren sehen.

0
mow

In meinem Fall funktionierte keines der oben genannten Probleme, jedoch löste das Problem 5.2.3.0 durch 4.0.0.0.

Für diejenigen, die .NET Standard project in Kombination mit .NET Framework projects verwenden:

In der .NET Standard-Methode werden Pakete, die in einem .NET Standard-Projekt enthalten sind, in anderen .NET Core- und .NET Standard-Projekten korrekt verwendet.

Wenn Sie sich in .NET Framework auf ein .NET Standard-Projekt aus einem .NET Framework (MVC) -Projekt beziehen, müssen Sie dieselben Nuget-Pakete manuell herunterladen und installieren.

Die Antwort auf meine Frage war also, dass ich Microsoft.AspNet.WebApi.Client im Webprojekt (.NET Framework) herunterladen und installieren musste, das ein .NET-Standardprojekt verwendet, für das Microsoft.AspNet.WebApi.Client erforderlich ist. Ich hatte dies bereits installiert, aber es gab einen Versionsunterschied.

Ich füge diese Antwort einfach hinzu, damit andere sie sehen können. Vielleicht hat sie die Frage von OP nicht direkt beantwortet, aber es hat mir Zeit gespart, indem ich dies zuerst überprüfte, anstatt die Antworten mit den besten Stimmen zu machen.

0
CularBytes

Was ich getan habe, um dieses Problem zu lösen, ist

  1. Gehen Sie zum NuGet-Paketmanager.

  2. Wählen Sie Updates aus (im linken Bereich).

  3. Aktualisieren Sie die WebApi-Komponenten

  4. Danach lief das Projekt fehlerfrei.

0
Raj