Ostatnio spotkałem następujący wyjątek w rozwiązaniu C #:
Błąd 2 Nie można załadować pliku lub zestawu „Newtonsoft.Json, Wersja = 3.5.0.0, Kultura = neutralny, PublicKeyToken = b9a188c8922137c6” lub jednej z jego zależności. Parametr jest niepoprawny. (Wyjątek od HRESULT: 0x80070057 (E_INVALIDARG))
Nie zależy to ani od mojego kodu, ani od nazwy zestawu (jak Newtonsoft.Json
w tym przypadku).
Kiedy usuwam tę bibliotekę DLL z rozwiązania, kompilator informuje o innym w tym samym wyjątku. Przypuszczam więc, że coś powinno być wyłączone / włączone na moim komputerze :)
Odpowiedzi:
Wygląda na odwołanie do uszkodzonego zestawu.
Oba czyste:
folder \ bin twojego projektu
folder temp (powinien znajdować się
C:\Users\your_username\AppData\Local\Temp\Temporary ASP.NET Files
w systemie Windows 7)i sprawdź, czy błąd nadal występuje
źródło
W zależności od tego, czy używasz X64, może być konieczne wyczyszczenie kilku dodatkowych miejsc. Samo oczyszczenie mojego katalogu użytkownika nie wystarczyło.
Ta lista będzie rosła, jakbyś miał zainstalowane inne wersje frameworka.
źródło
Musiałem wyczyścić
Dopiero wtedy problem został rozwiązany.
źródło
Aby wiedzieć, co należy wyczyścić, na pewno - dodaj następujący klucz rejestru:
Następnie zobaczysz wynik jak poniżej. To powie ci, gdzie asp.net próbuje załadować twoje biblioteki DLL. Wyczyść ten katalog.
źródło
Wyczyść tymczasowe pliki ram dla swojego projektu w: -
C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Tymczasowe pliki ASP.NET \
źródło
Możesz także wyczyścić katalog pakietów i pozwolić NuGet na ponowne pobranie brakujących pakietów
rozwiązało to dla mnie problem
źródło
Usuń wszystkie pliki z tych folderów.
źródło
Pomogło uzyskanie nowego zestawu plików binarnych z kontroli źródła.
Dzięki
źródło
Po prostu wyczyść ten folder: (tylko Windows x64)
źródło
Dzięki Alex twój drugi punkt pomógł mi to naprawić.
Wygląda na to, że jeśli nie uruchomisz programu Visual Studio jako administrator w systemie Windows 7, pliki tymczasowe będą przechowywane lokalnie, a nie C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files.
Zobacz następujący post na blogu: http://www.dotnetscraps.com/dotnetscraps/post/Location-of-Temporary-ASPNET-files-in-Vista-or-Windows-7.aspx
źródło
Miałem tutaj ten sam problem - powyższe rozwiązania nie działały. Problem dotyczył ActionMailer. Uruchomiłem następujące polecenia deinstalacji i instalacji nuget
Mam nadzieję, że rozwiążę moje problemy.
źródło
Może się to zdarzyć podczas odwoływania się do bibliotek otoki COM. W projekcie Visual Studio Project w obszarze Odwołania wybierz dll otoki COM, do którego się odwołujesz, i upewnij się, że mają one następujące wartości właściwości: „Osadzanie typów interakcji”: Fałsz i „Określona wersja”: Fałsz.
źródło
Właśnie usuwam dane tymczasowe aplikacji z tej ścieżki
Problem rozwiązany
źródło
Widzę, że wielu techników napisało o czyszczeniu tymczasowych katalogów środowiska ASP .Net w czasie wykonywania dotyczących każdego środowiska .Net hostowanego na twoim komputerze, jak w tym odpowiedzi. Uważam jednak, że powinniśmy znać przejrzystą logistykę, dlaczego musimy ślepo usuwać wszystkie tymczasowe katalogi robocze wszystkich platform .Net. Według mnie tak nie powinno być.
Moja rada jest taka, że powinieneś wypróbować podejście polegające na czyszczeniu katalogów, aby rozwiązać ten problem. Skąd wiesz, który katalog wyczyścić?
Manage Application
->,Advanced Settings...
aby otworzyćAdvanced Settings
okno.DefaultAppPool
tak, jak pokazano poniżej:Application Pools
węzła na lewym pasku nawigacji w IIS. Teraz sprawdź, która wersja .Net CLR jest uruchamiana przez twoją pulę aplikacji. W moim przypadku jest to wersja 4.0, jak pokazano poniżej:Ponieważ wersja CLR obsługiwana przez moją pulę aplikacji to v4.0, więc dokładnie wyczyściłem tylko pliki tymczasowe w folderze dotyczące ASP .NET v4.0 tylko jak poniżej:
I to wszystko. Mój problem został rozwiązany.
Wyciągnięta lekcja : wskazuje to na fakt, że wszystkie pliki tymczasowe używane przez twoją witrynę nie są rozproszone w kilku katalogach, ale są od razu kierowane przez pulę aplikacji. Musisz więc wyczyścić tylko ten konkretny folder.
źródło
Czyszczenie C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Tymczasowe pliki ASP.NET działały dla mnie. Myślisz o zautomatyzowaniu procesu usuwania, aby uniknąć problemu w przyszłości.
źródło
Jeśli używasz narzędzi danych programu SQL Server 2012, które korzystają z powłoki VS2010 na dzień 1 maja 2013 r., Sprawdź ustawienia programu Menedżer konfiguracji. Wystąpiła zmiana nazwy serwera z Workflow na xCPWorkflow, aby uzyskać dokładnie to samo . Parametr jest niepoprawny (wyjątek od HRESULT: 0x80070057 (E_INVALIDARG)) .
źródło
Możesz wyczyścić, zbudować lub przebudować aplikację lub po prostu usunąć tymczasowe pliki ASP.NET z C: \ Users \ YOUR USERNAME \ AppData \ Local \ Temp
To działa jak magia. W moim przypadku miałem problem z wiązaniem zestawu, mówiąc, że nie można załadować pliku bla bla bla
możesz także zobaczyć rozwiązanie 2 jako http://www.codeproject.com/Articles/663453/Understanding-Clean-Build-and-Rebuild-in-Visual-St
źródło
Miałem ten problem podczas tworzenia kontrolera w MVC. Zmieniłem wersję .NET Framework. Problem został rozwiązany
źródło
Problem dotyczy wersji środowiska uruchomieniowego .Net biblioteki klas, do której się odwołuje (odniesienia rozszerzone, wybierz bibliotekę i zaznacz „Wersja środowiska wykonawczego”. Miałem problem z Antlr3.Runtime, po uaktualnieniu mojego projektu Visual Studio do wersji 4.5. użyłem NuGet do odinstalowania Microsoft ASP.NET Web Optimization Framework (z powodu łańcucha zależności, które uniemożliwiły mi bezpośrednie odinstalowanie Antlr3)
Następnie użyłem NuGet, aby ponownie zainstalować program Microsoft ASP.NET Web Optimization Framework. Spowodowało to ponowne zainstalowanie prawidłowych wersji środowiska wykonawczego.
źródło
W moim przypadku chciałem skompilować widoczną bibliotekę DLL COM. Problem polegał na tym, że starsza wersja tej biblioteki DLL znajdowała się tutaj:
W ten sposób program Visual Studio załadował tę wersję zamiast nowo skompilowanej, próbując ją zarejestrować.
źródło
Wyczyść wszystkie pliki z folderu tymczasowego (C: \ Users \ nazwa_użytkownika \ AppData \ Local \ Temp \ Temporary ASP.NET Files \ folder projektu)
źródło
Czasami również musisz wyczyścić ten folder: C: \ Windows \ Temp \ Temporary ASP.NET
źródło
Napotkałem ten sam błąd, ponieważ aplikacja nie znalazła zależnych ram w
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\
folderze. Właśnie naprawiam moje Visual Studio, które dodało wymaganą platformę w powyższej lokalizacji i działa dobrze.źródło
W moim przypadku zmiana numeru portu IISExpress we właściwościach mojego projektu rozwiązała problem.
źródło
Jeśli ktoś jeszcze korzysta z zestawu narzędzi WiX, odkryłem, że mój projekt instalatora zawierał odniesienie do starego projektu, który został niedawno usunięty z rozwiązania. Zajęło mi to trochę czasu, ponieważ uświadomiłem sobie, że w rozwiązaniu, które próbowałem zbudować, jest wiele projektów, a komunikat nie wskazuje, który projekt nie został skompilowany (i wyczyścił, a także zawiódł).
źródło
Miałem użytkowników Siemens Teamcenter 10 Client dla Microsoft Office otrzymujących ten sam błąd dotyczący innej biblioteki DLL. Żadna z pozostałych odpowiedzi nie zadziałała. Rozwiązaniem było usunięcie folderów z
źródło
Miałem podobny problem podczas otwierania menedżera pakietów Nuget, usunąłem wszystkie pliki tymczasowe i skompilowałem projekt, działało dobrze.
źródło