Ich habe eine kleine MVC-App, die ich aus Übungsgründen verwende, aber jetzt tritt jedes Mal ein Fehler auf, wenn ich versuche, Fehler zu beheben:
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.
c#
asp.net
.net
asp.net-mvc-4
Norris
quelle
quelle
Antworten:
Wenn ich einen solchen NuGet-Fehler habe, gehe ich normalerweise folgendermaßen vor:
Wenn Sie alle diese Schritte ausführen, 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:
quelle
Entfernen Sie alle Code-Verweise auf
System.Net.*
im Paketfenster
Install-Package Microsoft.AspNet.WebApi.Client
Bereinigen und erstellen Sie Ihr Projekt neu
quelle
Web.Config
bindingRedirect
fürSystem.Net.Http.Formatting
undSystem.Web.Http
auf die neue aktualisiert hatte , die mit dem obigen Befehl installiert wurde ... dh sie ging von<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
zu<bindingRedirect oldVersion="0.0.0.0-4.0.30319" newVersion="4.0.30319"/>
Ich habe ein Extra gefunden
in meiner web.config. entfernte das, um es zum Laufen zu bringen. Ein anderes Paket, das ich installiert und dann entfernt habe, hat das Problem verursacht.
quelle
user3919888 zeigte mir die richtige Richtung, aber ich musste
Update-Package -reinstall Microsoft.AspNet.WebApi.Client
in der Package-Manager-Konsole ausgeführt werden. Die Basisinstallation selbst erkennt das Problem nicht, erkennt jedoch, dass das Paket bereits installiert ist, und überschreibt es nicht.Ich poste diese Antwort, weil dies so selten vorkommt, dass ich am Ende google und diese Seite erreiche, bevor ich mich daran erinnere, was ich das letzte Mal getan habe.
quelle
Das Entfernen der folgenden Zeilen aus
web.config
löste mein Problem. Beachten Sie, dass ich in diesem Projekt keine WebApi-Komponenten verwendet habe. Für andere funktioniert diese Lösung möglicherweise nicht wie erwartet.quelle
Für diejenigen, die .NET Standard- Projekte in Kombination mit .NET Framework- Projekten verwenden:
Auf die .NET Standard-Weise werden Pakete, die in einem .NET Standard-Projekt enthalten sind, korrekt in anderen .NET Core- und .NET Standard-Projekten verwendet.
Wenn Sie auf die .NET Framework-Methode verweisen und auf ein .NET Standard-Projekt aus einem .NET Framework (MVC) -Projekt verweisen, müssen Sie dieselben Nuget-Pakete manuell herunterladen und installieren.
Die Antwort auf meine Frage war also, dass ich
Microsoft.AspNet.WebApi.Client
das Webprojekt (.NET Framework) herunterladen und installieren musste, das beiMicrosoft.AspNet.WebApi.Client
Bedarf ein .NET Standard-Projekt verwendet . Tatsächlich hatte ich dies bereits installiert, aber es gab einen Versionsunterschied.Ich füge diese Antwort nur hinzu, damit andere sie sehen können. Sie beantwortet möglicherweise nicht direkt die Frage von OP, aber es hat mir Zeit gespart, indem ich dies zuerst überprüft habe, anstatt die Antworten mit den höchsten Stimmen zu geben.
quelle
System.Net.*
Microsoft.AspNet.WebApi
und seine Abhängigkeiten.Microsoft.AspNet.WebApi
und seine Abhängigkeiten.quelle
Wie ursprünglich in einem Kommentar von vorgeschlagen GEOMAC und dokumentierte auf NuGet der docs folgende für mich gearbeitet , wenn keine der anderen Antworten gearbeitet:
Tools / NuGet Package Manager / Package Manager-Konsole
quelle
In meinem Fall hat keine der oben genannten Lösungen funktioniert. Ich löste durch Klicken mit der rechten Maustaste auf die Referenz
aus Visual Studio und Setzen der Eigenschaft Copy Local auf true .
Ich hoffe das ist irgendwie nützlich.
quelle
Was diesen nervigen Fehler für mich gelöst hat, war, Visual Studio zu schließen und es wieder zu öffnen. Erstellen Sie dann die Lösung neu, und alles hat wieder funktioniert. Entschuldigung für die beschissene Antwort, aber ich denke, es ist eine Antwort wert, weil sie es für mich gelöst hat.
quelle
Für mich war es so einfach wie
Microsoft.AspNet.WebApi.Client
aus dem Paketordner im Windows Explorerquelle
In meinem Fall hat keines der oben genannten Verfahren funktioniert. Das Ersetzen von 5.2.3.0 durch 4.0.0.0 hat das Problem jedoch gelöst.
quelle
Ich hatte das gleiche Problem, weil
Die in webconfig geschriebene Version war 5.0.3, aber im bin-Ordner war die DLL-Version der Bibliothek System.Net.Http.Formatting 4.0.2
Also habe ich es einfach durch das gleiche ersetzt
Mach einfach dieses saubere Projekt und baue
quelle
Wahrscheinlich müssen Sie die Bibliotheksreferenz im Eigenschaftendialog als "Lokal kopieren = Wahr" festlegen. Klicken Sie in Visual Studio auf "Referenzen" und dann mit der rechten Maustaste auf die fehlende Referenz. Klicken Sie im Kontextmenü auf Eigenschaften, um die lokale Einstellung zu kopieren.
quelle
Für mich funktioniert das Hinzufügen einiger weniger Zeilen in WebApi.config so, wie es nach dem Aktualisieren des neuen Nuget-Pakets nicht funktioniert hat
Vergessen Sie nicht, einen Namespace hinzuzufügen:
quelle
Was ich getan habe, um dieses Problem zu lösen, ist
Gehen Sie zum NuGet-Paketmanager.
Wählen Sie Updates (im linken Bereich).
Aktualisieren Sie die WebApi-Komponenten
Danach lief das Projekt fehlerfrei.
quelle
VS2019: Tools -> Nuget Package Manager -> Package Manager-Einstellungen -> Aktivieren Sie im Abschnitt Paketwiederherstellung zwei Optionen. Gehen Sie danach zum Ordner "Projektpakete" und löschen Sie alle darin enthaltenen untergeordneten Ordner (für keinen Fehler mehr). Anschließend wird die Lösung neu erstellt. Nuget lädt alle Pakete erneut herunter, und das Projekt sollte ohne Referenz ausgeführt werden.
quelle
Ich hatte das Problem mit einem ASP.NET-Projekt in VS 2019.
Ein weiteres Symptom war, dass einige Referenzen (System.Web.Http) in der Projektreferenzliste (Projektmappen-Explorer) als fehlerhaft markiert wurden.
Meine Lösung:
Die Ursache:
Wenn ich mir den Unterschied in der csproj-Datei anschaue, kann ich den Grund für das Problem erkennen . Jemand hat es geschafft, auf eine DLL im Windows-Programmdateiordner zu verweisen!
quelle