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?

Maven
źródło
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.

AH.
źródło
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.
sachin kulkarni
źródło
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
Mathijs Vlasveld
źródło
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.

fhilton
źródło
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ął.

YeeHaw1234
źródło
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.

miłość na żywo
źródło
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>
Daniel Melo
źródło
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

dee pan
źródło
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

Edson-
źródło
2

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

PRZYZNAĆ
źródło
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 :)

Mohamed Sanuj Basheer
źródło
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

Mostafa Elabbady
źródło
1

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

wprowadź opis obrazu tutaj

Md Shahriar
źródło
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.

Tomas Kubes
źródło
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 ...

Velociround
źródło
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!

Anchit
źródło
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.

Schmalls
źródło
0

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

joalcego
źródło
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.

Laurent DANE
źródło
0

Dla mnie rozwiązaniem było uruchomienie Visual Studio jako Administrator. Najwyraźniej był to problem z uprawnieniami.

Alexander van Trijffel
źródło
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.

Chris Moschini
źródło
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

Ikram Shah
źródło
0

Usunięto% temp%

Pojemnik usunięty

Usunięte .vs

Teraz pracował dla mnie

Arun Prasad ES
źródło
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.

Jaskółka oknówka
źródło
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.

Nishān Wickramarathna
źródło
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.

Mostafa Fallah
źródło