Mam małą aplikację MVC, której używam do ćwiczeń, ale teraz za każdym razem, gdy próbuję debugować, napotykam błąd:
Could not load file or assembly 'System.Net.Http.Formatting' or one of its dependencies.
The system cannot find the path specified.
Wyszukałem w Google, ale nie mogę znaleźć rozwiązania. Używam .NET 4.5.
Nie może to być plik DLL, ponieważ używam .Net 4.5.
c#
asp.net
.net
asp.net-mvc-4
Norris
źródło
źródło
Odpowiedzi:
Ilekroć mam błąd NuGet, taki jak te, zwykle wykonuję następujące kroki:
Wykonanie wszystkich tych kroków prawie zawsze przywraca wszystkie pakiety i biblioteki DLL, których potrzebuję dla mojego programu MVC.
EDYTUJ >>>
W przypadku programu Visual Studio 2013 i nowszych krok 2) powinien brzmieć:
źródło
Usuń wszystkie odwołania do kodu do
System.Net.*
w oknie pakietu,
Install-Package Microsoft.AspNet.WebApi.Client
Wyczyść i odbuduj swój projekt
źródło
Web.Config
bindingRedirect
forSystem.Net.Http.Formatting
iSystem.Web.Http
do nowego zainstalowanego powyższą komendą ... czyli poszło z<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
do<bindingRedirect oldVersion="0.0.0.0-4.0.30319" newVersion="4.0.30319"/>
Znalazłem dodatkowy
w moim web.config. usunąłem to, aby działało. jakiś inny pakiet, który zainstalowałem, a następnie usunąłem, spowodował problem.
źródło
user3919888 wskazał mi właściwy kierunek, ale musiałem uruchomić
Update-Package -reinstall Microsoft.AspNet.WebApi.Client
w konsoli Package-Manager. Sama instalacja podstawowa nie rozpoznaje problemu, ale rozpoznaje, że pakiet jest już zainstalowany i nie zastępuje go.Publikuję tę odpowiedź, ponieważ zdarza się to tak rzadko, że w końcu szukam w Google i docieram do tej strony, zanim przypomnę sobie, co zrobiłem ostatnio.
źródło
Usunięcie poniższych wierszy z
web.config
rozwiązało mój problem. Zauważ, że w tym projekcie nie korzystałem z komponentów WebApi. Dlatego dla innych to rozwiązanie może nie działać zgodnie z oczekiwaniami.źródło
Dla tych, którzy używają projektu .NET Standard w połączeniu z .NET Framework projektami :
W przypadku platformy .NET Standard pakiety zawarte w projekcie .NET Standard będą poprawnie używane w innych projektach .NET Core i .NET Standard.
Im sposobem .NET Framework, jeśli odwołujesz się do projektu .NET Standard z projektu .NET Framework (MVC), musisz ręcznie pobrać i zainstalować te same pakiety NuGet.
Tak więc odpowiedź na moje pytanie brzmiała, że muszę pobrać i zainstalować
Microsoft.AspNet.WebApi.Client
w projekcie sieciowym (.NET Framework), który korzysta z projektu .NET Standard, gdzieMicrosoft.AspNet.WebApi.Client
jest to potrzebne. W rzeczywistości miałem już to zainstalowane, ale była różnica w wersji.Po prostu dodaję tę odpowiedź, aby inni mogli ją zobaczyć, może nie odpowiadać bezpośrednio na pytanie OP, ale zaoszczędziła mi to czas, najpierw sprawdzając to, zamiast wykonywać odpowiedzi, które uzyskały najwięcej głosów.
źródło
System.Net.*
Microsoft.AspNet.WebApi
i jego zależności.Microsoft.AspNet.WebApi
i jego zależności.źródło
Jak pierwotnie zasugerowano w komentarzu GeoMac i udokumentowano w dokumentacji NuGet, poniższe działały dla mnie, gdy żadna z pozostałych odpowiedzi nie działała:
Narzędzia / Menedżer pakietów NuGet / Konsola Menedżera pakietów
źródło
W moim przypadku żadne z powyższych rozwiązań nie zadziałało. Rozwiązałem, klikając prawym przyciskiem myszy odniesienie
z programu Visual Studio i ustawiając właściwość Copy Local na true .
Mam nadzieję, że to jakoś się przyda.
źródło
Rozwiązaniem tego irytującego błędu było po prostu zamknięcie programu Visual Studio i ponowne jego otwarcie. Następnie odbuduj rozwiązanie i wszystko znowu zadziałało. Przepraszam za bzdurną odpowiedź, ale myślę, że warto odpowiedzieć, ponieważ rozwiązało to dla mnie.
źródło
Dla mnie to było tak proste jak
Microsoft.AspNet.WebApi.Client
z folderu pakietów w Eksploratorze Windowsźródło
W moim przypadku żadne z powyższych nie działało, jednak zastąpienie 5.2.3.0 4.0.0.0 rozwiązało problem.
źródło
Miałem ten sam problem, ponieważ
Wersja napisana wewnątrz webconfig to 5.0.3, ale w folderze bin biblioteka System.Net.Http.Formatting dll to 4.0.2
więc właśnie zastąpiłem tym samym podanym pojemnikiem wewnętrznym
po prostu zrób ten czysty projekt i skompiluj
źródło
Prawdopodobnie musisz ustawić odniesienie do biblioteki jako „Copy Local = True” w oknie właściwości. W programie Visual Studio kliknij „referencje”, a następnie kliknij prawym przyciskiem myszy brakujące odniesienie, we właściwościach menu kontekstowego powinieneś zobaczyć kopiowanie ustawień lokalnych.
źródło
Dla mnie dodanie kilku poniższych wierszy w WebApi.config działa jak po aktualizacji nowego pakietu NuGet nie wyszło
Nie zapomnij dodać przestrzeni nazw:
źródło
To, co zrobiłem, aby rozwiązać ten problem, to
Przejdź do menedżera pakietów NuGet.
Wybierz Aktualizacje (z lewego panelu)
Zaktualizuj komponenty WebApi
Po tym projekt działał bez błędów.
źródło
VS2019: Narzędzia -> Menedżer pakietów Nuget -> Ustawienia Menedżera pakietów -> w sekcji Przywracanie pakietu zaznacz 2 opcje. Następnie przejdź do folderu pakietów projektu i usuń wszystkie foldery podrzędne w środku (bez żadnego błędu). Następnie rozwiązanie Rebuild, Nuget ponownie pobierze wszystkie pakiety, a projekt powinien działać bez żadnego odniesienia.
źródło
Miałem problem z projektem ASP.NET w VS 2019.
Innym objawem było to, że niektóre odwołania (System.Web.Http) zostały oznaczone jako błędne na liście referencji projektu (Solution Explorer)
Moje rozwiązanie:
Przyczyna:
Patrząc na różnicę w pliku csproj, mogłem zobaczyć przyczynę problemu. Ktoś zdołał odwołać się do biblioteki DLL w folderze plików programu Windows!
źródło