Не вдалося завантажити файл або збірку "Antlr3.Runtime (1)" або одну із залежностей


83

Я отримую цю помилку під час спроби запустити свій MVC4проект, він працював нормально до останнього разу на моїх інших машинах, але коли я намагаюся запустити його з іншої машини, це видає мені цю помилку:

Не вдалося завантажити файл або збірку "Antlr3.Runtime (1)" або одну із залежностей. Визначення маніфесту розташованої збірки не відповідає посиланням на збірку. (Виняток з HRESULT: 0x80131040)

Прочитавши про це тут, я спробував зробити :

Install-Package Antlr3.Runntime -Pre

але це не допомогло, якісь ідеї?


1
Ви намагалися деінсталювати попередню. версію перед встановленням вищевказаної версії?
Спок

1
Я не оновлював жодної версії. Щойно поміняв машину
Мейвен

Ви намагалися клацнути правою кнопкою миші на рішення, а потім на "Увімкнути відновлення пакета nuget"?
TS

Жодна з відповідей тут не допомогла, але відповідь на цей дублікат допомогла.
DCShannon

Відповіді:


103

Я зіткнувся з тією ж проблемою, експериментуючи з безкоштовною платформою реєстрації Nlog.

Це мені допомогло:

Введіть% TEMP% у Провідник файлів та видаліть усі тимчасові файли.

Після цього я не отримав помилку під час запуску проекту MVC5 у Visual Studio.


У моєму повідомленні про помилку не було "(1)", але це рішення все одно спрацювало
Роберто

10
Дякую за це. Саме таке дерьмо від Microsoft інколи викликає бажання
пробитися

Чудово !! На це витратив занадто багато годин. Моя проблема полягала не в частині збірки, але публікація артефактів за допомогою файлів pubxml не працювала на сервері Jenkins, хоча на моїй локальній машині вона працювала нормально. Після видалення тимчасової папки, як описано вище, артефакти публікації працювали без проблем.
yyardim

41

Спробуйте видалити тимчасові файли для ASP.Net, виконавши одну з таких дій:

  • Введіть% TEMP% у Провідник файлів та видаліть усі тимчасові файли.
  • Перейдіть до папки "C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files" і видаліть усі файли.

7
Дякую. Для мене допоміг варіант 2
рабин

Я згоден з @Rabbi. Це варіант 2 вирішив мою проблему. Я хотів би, щоб я проголосував за вашу відповідь 10 разів! Дуже тобі дякую. :)
Annie Lagang

31

Не забудьте також очистити тимчасові файли ASP.NET у Framework64. Це зробило для мене фокус.

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

Відмінно дякую, спробував прийняту відповідь безрезультатно, поки я не побачив цю публікацію, Framework64 зробив це за мене
Джошуа Охана

Це працює для мого та іншого посилання на DLL проекту. У моєму випадку всі посилання у веб-проекті були порушені, було повідомлення: "Не вдалося завантажити файл або збірку 'whatever.dll' або одну з його залежностей". Після очищення було створено посилання на dll, і все працює нормально.
Fer R

27

Про всяк випадок, коли це комусь допомагає.
У мене виникла проблема з додатком MVC 5. Видалення Antlr3.Runtime.dll з каталогу bin та відновлення побудови вирішили проблему.


Це спрацювало для мене. Дякую. Але я досі не впевнений у справжній причині цієї помилки. Хтось може пояснити.
mukulsharma1146

1
У моєму випадку мені довелося видалити WebGrease.dll замість цього
Тарвен

дякую ... витратив 3 години, намагаючись це вирішити, і це крок, який позбувся мого YSOD.
Джошуа К

18

Моя проблема полягала в тому, що остання версія WebGrease встановлює версію 3.4.1.9004 Antlr. Після того, як я встановив WebGrease, а потім оновив Antlr до версії 3.5.0.2, помилка зникла.


11
Моєю проблемою було саме це питання. Мені довелося розкрутити ланцюжок залежностей у консолі диспетчера пакетів, видаливши Microsoft.AspNet.Web.Optimization, WebGrease та Antlr (у такому порядку), потім встановити-пакет Microsoft.AspNet.Web.Optimization, оновити-пакет WebGrease і, нарешті, оновити -пакет Antlr (у такому порядку), щоб отримати останні версії та виправити проблему з версією Antlr.
Wade

13

Для мене видалення цього вузла у файлі web.config позбулося повідомлення про помилку:

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

Але те, що насправді спрацювало для мене, - це надання повного доступу (до ім’я користувача, зазначеного у виданні себе за іншу особу), до папки Тимчасові файли ASP.NET, знайдені в C: \ Windows \ Microsoft.NET \ Framework {версія} (або Framework64).

Ідентичність також може зберігатися в налаштуваннях пулу веб-сайтів у IIS.

Переконайтесь, що ваш пакет nuget правильно встановлений, із правильною версією. Якщо нічого іншого не працює, просто спробуйте повторно додати посилання з локальної папки та встановити його на «Копіювати локально».


1
Це вирішило проблему для мене. У web.config було налаштовано на видавання себе за інтерактивне середовище, і цей обліковий запис користувача не існував у моєму світі розробників.
ttomsen

Я спробував усі три пропозиції, і жодна з них не спрацювала. Все ще отримую YPOD 1. У моєму web.config немає <тегу ідентифікатора 2. Я дав «повний контроль» як iis_usrs, так і користувачам \ johnny 3. Останні варіанти здаються хакерськими
dannyrosalex

Я вирішив це за допомогою команди:ASPNET_REGIIS -GA impersonatedusername
cslecours

Це допомогло вирішити мою проблему. Я працював локально, і оскільки назва облікового запису, згадана в цьому елементі, не має доступу до моєї папки dev.
Аамол,

Дякую, це рішення дійсно корисне.
Josue Barrios

11

Якщо будь-які рішення вирішують вашу проблему, перевірте web.config, версію збірки

<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>

Дякую. У разі оновлення пакунків та вирішення проблеми ця відповідь спрацювала для мене.
Fereydoon Barikzehy

Я видалив цю збірку, тоді вона у мене спрацювала. Дякую!!
User6667769

8

Один із найпростіших способів - це оновлення antlr та webgrease

  1. Перейдіть до менеджера консолі пакетів
  2. тоді спробуйте застосувати ці коди по одному
  3. PM> Пакет оновлення Antlr
  4. PM> Пакет оновлень WebGrease

Нарешті помилка вирішена


2

Для мене це було спричинено невідповідністю версій Antlr для налагодження та виконання.

Нарешті вирішив це, встановивши інший пакет Antlr: Install-Package Antlr


2

Спробуйте розблокувати Antlr3.Runtime.dll, якщо ви додаєте посилання вручну: введіть тут опис зображення


2

Виникла проблема з імітацією = "true" у web.config, я видалив рядок, який спрацював !!

Знову я розмістив рядок і дав дозвіл адміністратора обліковому запису користувача, який видає себе за себе, вся моя програма працювала :)


1

Якщо ви використовуєте себе за іншу особу. Відповідь полягає у наданні дозволу користувачеві на те, що ви видаєте себе за доступ до таких папок:

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

  2. Каталог вашого сайту.

також вам може знадобитися створити папку наступним чином:

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

Але спробуйте попередній перший, це спрацювало для мене.

Ці дві зміни для надання дозволеного імітованого користувача можливості зберігати тимчасові дані та витягувати файли dll та всі необхідні файли з каталогів

Оновлення для Windows 10 Це рішення, яке працювало для мене

Ми зробимо обидва кроки, але замість цього C:\Windows\Microsoft.NET\Framework[v4.0.30319 or the version that you're using]\Temporary ASP.NET Files

Запишіть% TEMP% у провідник файлів і надайте користувачеві дозвіл на те, що ви видаєте себе за доступ до такої папки: C:\Users\[UserName]\AppData\Local\Temp\Temporary ASP.NET Files


1

Я отримав просте рішення. Перейдіть до власної папки проекту та знайдіть папку пакетів.

введіть тут опис зображення


0

У проекті я мав посилання на WebGrease, але відповідного елемента в package.config не було. Я видаляю посилання з проекту, бо мені це більше не потрібно. Це працює зараз.


0

Я спробував усі відповіді в цій публікації, але жодна з них не спрацювала для мене.

Тож я видалив зі свого рішення всі каталоги / bin всередині всіх проектів, очистив і відновив рішення, і воно нарешті запрацювало!

Увесь мій ранок марно працював, щоб з’ясувати проблему ...


0

у мене спрацювало видалення identitet = true з мого webconfig (під властивостями system.web) і побудова рішення знову і публікація його знову (за потреби), і це спрацювало як шарм!


це має бути в коментарі
Усман Макбул,

0

Моя проблема виявилася спричиненою зміною відображених дисків у нашій груповій політиці. Моє рішення має налаштування tempDirectory , встановлене в Web.config для використання налаштування дисковода RAM як мого диска Z:. Очевидно, вони почали використовувати диск Z: і бібліотеки DLL копіювались у tempDirectory як зазвичай, але тоді я думаю, що їх видаляв процес на віддаленому сервері (можливо, сканування вірусів). Я зміг це зрозуміти лише за допомогою Process Monitor та фільтрації для Antlr і побачивши, що він шукає в мережевому розташуванні бібліотеки DLL.


0

Я оновив усі пакети в менеджері пакетів Nudget, і це спрацювало! У моєму випадку я розміщую свій веб-сайт у GoDaddy


0

Після спроби видалити тимчасовий файл .netframework без успіху, я змінився

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

Лише targetFramework = "4.6" замість 4.6.1 Веб-сайт відображається без помилок. Далі я знову змінився на targetFramework = "4.6.1" і перезапустив сервер. Все залишається добре.



0

Рішенням для мене було перейти Інструменти> Менеджер пакунків NuGet> Управління пакетами для рішення

Потім клацніть Antlr3 і переконайтесь, що він був встановлений у:

  1. Стартап-проект
  2. Будь-які бібліотеки, що використовують рефлексію
  3. Будь-які бібліотеки, що викликають бібліотеки, які використовують відображення

У моєму випадку це було 4 проекти, які потребували цього. Після цього це питання було остаточно вирішено.


0

Я щойно зіткнувся з цією проблемою і спробував вищезазначені рішення, але наразі нічого не вдалося, мені довелося видалити його dll з bin floder і відновити, а потім видалити всі випущені файли з папки пакетів і відновити пакети за допомогою консолі диспетчера пакетів



0

У моєму випадку, коли я клонував проект, Visual studio 2019 замінив пробіл на '% 20' на шляху до проекту. Потім, коли VS намагався знайти пакунки самородка, він не зміг знайти правильний шлях.


0

Я зіткнувся з цією проблемою після оновлення Microsoft.AspNet.Web.Optimization

update-package WebGreaseта update-package Antlr(у такому порядку) отримати останні версії та виправити проблему з версією Antlr.


0

Для мене я зробив ці кроки, і це у мене спрацювало:

1) Я видалив binі objпапку (деякі файли не були видалені Cleanпроектом)

2) Я перевірив деякі файли, такі як JS, який був видалений давно, але вони були включені у файли проекту . Тож я їх виключаю.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.