Nie można załadować pliku lub zestawu „Antlr3.Runtime (1)” lub jednej z jego zależności


83

Otrzymuję ten błąd podczas próby uruchomienia mojego MVC4projektu, działał dobrze do ostatniego razu na moich innych komputerach, ale kiedy próbuję uruchomić go z innego komputera, pojawia się ten błąd:

Nie można załadować pliku lub zestawu „Antlr3.Runtime (1)” lub jednej z jego zależności. Definicja manifestu zlokalizowanego zestawu nie jest zgodna z odwołaniem do zestawu. (Wyjątek od HRESULT: 0x80131040)

Po przeczytaniu o tym tutaj próbowałem zrobić :

Zainstaluj pakiet Antlr3.Runtime -Pre

ale to nie pomogło, jakieś pomysły?


1
Czy próbowałeś odinstalować plik prev. wersja przed zainstalowaniem powyższej wersji?
Spock

1
Nie zaktualizowałem żadnej wersji. Właśnie zmieniłem maszynę
Maven

Czy próbowałeś kliknąć prawym przyciskiem myszy rozwiązanie, a następnie opcję „Włącz przywracanie pakietu NuGet”?
TS

Żadna z odpowiedzi tutaj nie pomogła, ale odpowiedź na ten duplikat pomogła .
DCShannon,

Odpowiedzi:


103

Napotkałem ten sam problem podczas eksperymentowania z bezpłatną platformą logowania Nlog.

Pomogło mi to:

Wpisz% TEMP% w Eksploratorze plików i usuń wszystkie pliki tymczasowe.

Po tym nie otrzymałem błędu podczas uruchamiania projektu MVC5 w programie Visual Studio.


Mój komunikat o błędzie nie miał „(1)”, ale to rozwiązanie nadal działało
Roberto

10
Dzięki za to. To takie bzdury Microsoftu, które czasami sprawiają, że chcesz
wbić pięść w trzewia

Niesamowite!! Zmarnowałem na to zbyt wiele godzin. Mój problem nie dotyczył części kompilacji, ale publikowanie artefaktów przy użyciu plików pubxml na serwerze Jenkins Server kończyło się niepowodzeniem, podczas gdy działało dobrze na moim komputerze lokalnym. Po usunięciu folderu tymczasowego zgodnie z powyższym opisem artefakty publikowania działały bez problemów.
yyardim

41

Spróbuj usunąć pliki tymczasowe dla ASP.Net, wykonując jedną z następujących czynności:

  • Wpisz% TEMP% w Eksploratorze plików i usuń wszystkie pliki tymczasowe.
  • Przejdź do folderu „C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files” i usuń wszystkie pliki.

7
Dziękuję Ci. Pomogła mi opcja 2
rabin

Zgadzam się z @Rabbi. To opcja 2 rozwiązała mój problem. Chciałbym móc zagłosować za Twoją odpowiedź 10 razy! Dziękuję Ci bardzo. :)
Annie Lagang

31

Nie zapomnij wyczyścić również tymczasowych plików ASP.NET w Framework64. To załatwiło sprawę dla mnie.

  • C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files

Doskonałe dzięki, próbowałem zaakceptowanej odpowiedzi bez skutku, dopóki nie zobaczyłem tego posta, Framework64 zrobił to za mnie
Joshua Ohana

Działa to dla mojego i innego pliku dll projektu, do którego się odwołuje. W moim przypadku wszystkie odwołania w projekcie WWW były zepsute, komunikat brzmiał: „Nie można załadować pliku lub zestawu 'cokolwiek.dll' lub jednej z jego zależności”. Po wyczyszczeniu można utworzyć odniesienie dll i wszystko działa dobrze.
Fer R

27

Na wypadek, gdyby to komuś pomogło.
Miałem ten problem z aplikacją MVC 5. Usunięcie Antlr3.Runtime.dll z katalogu bin i ponowne kompilowanie rozwiązało problem.


To zadziałało dla mnie. Dzięki. Ale nadal nie jestem pewien prawdziwej przyczyny tego błędu. Czy ktoś może wyjaśnić.
mukulsharma1146

1
W moim przypadku zamiast tego musiałem usunąć WebGrease.dll
Tharwen

dziękuję ... spędziłem 3 godziny próbując rozwiązać ten problem i to jest krok, który pozbył się mojego YSOD.
Joshua K

18

Mój problem polegał na tym, że najnowsza wersja WebGrease instaluje wersję 3.4.1.9004 Antlr. Po zainstalowaniu WebGrease, a następnie zaktualizowaniu Antlr do wersji 3.5.0.2, błąd zniknął.


11
Mój problem dotyczył właśnie tego problemu. Musiałem rozwinąć łańcuch zależności w konsoli Menedżera pakietów, odinstalowując Microsoft.AspNet.Web.Optimization, WebGrease i Antlr (w tej kolejności), a następnie zainstalować pakiet Microsoft.AspNet.Web.Optimization, zaktualizować pakiet WebGrease i na koniec zaktualizować -package Antlr (w tej kolejności), aby pobrać najnowsze wersje i naprawić problem z wersją Antlr.
Brać

13

Dla mnie usunięcie tego węzła w pliku web.config pozbyło się komunikatu o błędzie:

<identity impersonate="true" userName="" password="">

Ale to, co naprawdę zadziałało, to przyznanie pełnego dostępu (do nazwy użytkownika określonej w personifikacji), do folderu Temporary ASP.NET Files ”znajdującego się w C: \ Windows \ Microsoft.NET \ Framework {wersja} (lub Framework64).

Tożsamość może być również przechowywana w ustawieniach puli aplikacji witryny sieci Web w usługach IIS.

Upewnij się, że pakiet NuGet jest poprawnie zainstalowany i ma poprawną wersję. Jeśli nic innego nie działa, po prostu spróbuj ponownie dodać odwołanie z folderu lokalnego i ustawić je na Kopiuj lokalnie.


1
To rozwiązało problem. web.config miał ustawienie personifikacji w środowisku pomostowym, a to konto użytkownika nie istniało w moim świecie deweloperów.
ttomsen

Wypróbowałem wszystkie trzy sugestie i żadna z nich nie zadziałała. Wciąż pobieram YPOD 1. W moim web.config nie ma <tagu tożsamości. 2. Dałem „pełną kontrolę” zarówno iis_usrs, jak i users \ johnny 3. Ostatnie opcje wyglądają na włamanie
dannyrosalex

Rozwiązałem to za pomocą polecenia:ASPNET_REGIIS -GA impersonatedusername
cslecours

To pomogło rozwiązać mój problem. Pracowałem lokalnie, a nazwa konta wymieniona w tym elemencie nie ma dostępu do mojego folderu deweloperskiego.
Aamol,

Dzięki, to rozwiązanie jest naprawdę pomocne.
Josue Barrios

11

Jeśli jakieś rozwiązania rozwiązują problem, sprawdź plik web.config, czyli wersję zestawu

<dependentAssembly>
        <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
      </dependentAssembly>

Dzięki W przypadku aktualizacji pakietów i zmierzenia się z problemem ta odpowiedź zadziałała.
Fereydoon Barikzehy

Usunąłem ten zespół, to działało dla mnie. Dziękuję Ci!!
User6667769

8

Jednym z prostszych sposobów jest aktualizacja antlr i webgrease

  1. Idź do menedżera konsoli pakietów
  2. następnie spróbuj zastosować te kody jeden po drugim
  3. PM> Update-Package Antlr
  4. PM> Update-Package WebGrease

Wreszcie błąd rozwiązany


2

W moim przypadku było to spowodowane niezgodnością między wersjami Antlr do debugowania i środowiska wykonawczego.

Wreszcie rozwiązałem to, instalując inny pakiet Antlr: Install-Package Antlr


2

Spróbuj odblokować plik Antlr3.Runtime.dll, jeśli ręcznie dodasz odniesienie: wprowadź opis obrazu tutaj


2

Wystąpił problem z impersonate = "true" w web.config, usunąłem linię, która działała !!

Ponownie umieściłem linię i dałem administratorowi uprawnienia do konta użytkownika z personifikacją, cała moja aplikacja działała :)


1

Jeśli używasz podszywania się. Odpowiedzią jest nadanie uprawnień użytkownikowi, pod którego podszywasz się, dostępu do następujących folderów:

  1. C:\Windows\Microsoft.NET\Framework[v4.0.30319 or the version that you're using]\Temporary ASP.NET Files

  2. Twój katalog witryny.

może być również konieczne utworzenie następującego folderu:

C:\Windows\Microsoft.NET\Framework\[v4.0.30319 or the version that you're using]\Temporary ASP.NET Files\[Application-Name-Goes-Here]

Ale najpierw wypróbuj poprzednią, zadziałała.

Te dwie zmiany dotyczące przyznania podszywanego użytkownika uprawnienia do zapisywania danych tymczasowych i pobierania plików dll oraz wszelkich potrzebnych plików z katalogów

Aktualizacja, dla systemu Windows 10 To rozwiązanie zadziałało dla mnie

Zrobimy oba kroki, ale Zamiast tego C:\Windows\Microsoft.NET\Framework[v4.0.30319 or the version that you're using]\Temporary ASP.NET Files

Zapisz% TEMP% w eksploratorze plików i nadaj uprawnienia użytkownikowi, któremu podszywasz się, do następującego folderu: C:\Users\[UserName]\AppData\Local\Temp\Temporary ASP.NET Files


1

Mam proste rozwiązanie. Przejdź do własnego folderu projektu i znajdź folder z pakietami.

wprowadź opis obrazu tutaj


0

W projekcie miałem odniesienie do WebGrease, ale nie było odpowiedniego elementu w packages.config. Usuwam odniesienie z projektu, ponieważ już go nie potrzebuję. To teraz działa.


0

Wypróbowałem wszystkie odpowiedzi w tym poście, ale żadna z nich nie zadziałała.

Więc usunąłem wszystkie katalogi / bin wewnątrz wszystkich projektów z mojego rozwiązania, wyczyściłem i odbudowałem rozwiązanie i w końcu zadziałało!

Cały poranek straciłem na pracy nad rozwiązaniem problemu ...


0

co zadziałało dla mnie, to usunięcie tożsamości = true z mojej konfiguracji webconfig (w ramach właściwości system.web) i ponowne zbudowanie rozwiązania i opublikowanie go ponownie (w razie potrzeby) i zadziałało jak urok!


to powinno być w komentarzu
Usman Maqbool

0

Mój problem został spowodowany przez zmianę mapowanych dysków w naszych zasadach grupy. Moje rozwiązanie ma ustawienie tempDirectory w pliku Web.config, aby używać konfiguracji dysku RAM jako mojego dysku Z :. Najwyraźniej zaczęli używać dysku Z: i biblioteki DLL były kopiowane do tempDirectory w normalny sposób, ale myślę, że były usuwane przez proces na zdalnym serwerze (prawdopodobnie skanowanie antywirusowe). Byłem w stanie to rozgryźć tylko za pomocą Process Monitor i filtrowania Antlr i widząc, że szukał on bibliotek DLL w lokalizacji sieciowej.


0

Zaktualizowałem wszystkie pakiety w menedżerze pakietów Nudget i zadziałało! W moim przypadku hostuję swoją witrynę w GoDaddy


0

Po próbie usunięcia pliku tymczasowego .netframework bez powodzenia, zmieniłem

<system.web>
    <authentication mode="None" />
    <compilation debug="true" targetFramework="4.6.1" />
    <httpRuntime />
    <pages controlRenderingCompatibilityVersion="4.0" />
</system.web> 

Tylko z targetFramework = "4.6" zamiast 4.6.1 witryna internetowa wyświetla się bez błędów. Następnie ponownie zmieniłem na targetFramework = "4.6.1" i zrestartowałem serwer. Wszystko pozostaje w porządku.



0

Rozwiązaniem dla mnie było przejście do Narzędzia> Menedżer pakietów NuGet> Zarządzaj pakietami w celu rozwiązania

Następnie kliknij Antlr3 i upewnij się, że został zainstalowany w:

  1. Projekt startowy
  2. Wszelkie biblioteki używające refleksji
  3. Wszelkie biblioteki wywołujące biblioteki, które używają odbicia

W moim przypadku były to 4 projekty, które tego potrzebowały. Gdy to zrobiono, problem został ostatecznie rozwiązany.


0

Właśnie napotkałem ten problem i wypróbowałem powyższe rozwiązania, ale na razie nic nie działało Musiałem usunąć jego bibliotekę dll z bin floder i przebudować, a następnie usunąć wszystkie zwolnione pliki z folderu pakietów i przywrócić pakiety za pomocą konsoli menedżera pakietów



0

W moim przypadku, kiedy sklonowałem projekt, Visual Studio 2019 zastąpiło znak spacji „% 20” w ścieżce projektu. Następnie, gdy VS próbował znaleźć pakiety użytkowe, nie mógł znaleźć poprawnej ścieżki.


0

Napotkałem ten problem po aktualizacji Microsoft.AspNet.Web.Optimization

update-package WebGreasei update-package Antlr(w tej kolejności), aby pobrać najnowsze wersje i naprawić problem z wersją Antlr.


0

Dla mnie wykonałem te kroki i zadziałało:

1) Usunąłem bini objfolder (niektóre pliki nie zostały usunięte przez Cleanprojekt)

2) Sprawdziłem niektóre pliki, takie jak JS, który został usunięty dawno temu, ale zostały uwzględnione w plikach projektu . Więc je wykluczam.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.