Не удалось загрузить файл или сборку Antlr3.Runtime (1) или одну из его зависимостей

83

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

Не удалось загрузить файл или сборку Antlr3.Runtime (1) или одну из его зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)

Прочитав об этом здесь, я попытался сделать :

Установочный пакет Antlr3.Runtime -Pre

но это не помогло, есть идеи?

Maven
источник
1
Вы пытались установить пред. версия перед установкой вышеуказанной версии?
Spock
1
Я не обновлял ни одной версии. Только что поменял машину
Maven
Вы пытались щелкнуть правой кнопкой мыши решение, а затем «Включить восстановление пакета nuget»?
TS
Ни один из ответов здесь не помог, но ответ на этот дубликат помог .
DCShannon

Ответы:

103

Я столкнулся с той же проблемой, когда экспериментировал с бесплатной платформой регистрации Nlog.

Мне это помогло:

Введите% TEMP% в проводнике и удалите все временные файлы.

После этого я не получал ошибки при запуске моего проекта MVC5 в Visual Studio.

А.
источник
В моем сообщении об ошибке не было "(1)", но это решение все еще работало
Роберто
10
Спасибо за это. Это дерьмо Microsoft, из-за которого иногда хочется проткнуть Visual Studio кулаком ...
Смирниан,
Потрясающе!! Потратил на это слишком много часов. Моя проблема заключалась не в сборке, а в публикации артефактов с использованием файлов 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. В моем случае все ссылки в веб-проекте были нарушены, сообщение было: «Не удалось загрузить файл или сборку« Any.dll »или одну из ее зависимостей». После очистки ссылка на dll могла быть создана, и все работает нормально.
Fer R
27

На всякий случай это кому-то поможет.
У меня была эта проблема с приложением MVC 5. Удаление Antlr3.Runtime.dll из каталога bin и повторная сборка устранили проблему.

Fhilton
источник
Это сработало для меня. Благодарю. Но я до сих пор не уверен в истинной причине этой ошибки. Может кто-нибудь объяснить.
mukulsharma1146
1
В моем случае вместо этого мне пришлось удалить WebGrease.dll
Тарвен
спасибо ... потратил 3 часа, пытаясь решить эту проблему, и это шаг, который избавил меня от моего YSOD.
Джошуа К.
18

Моя проблема заключалась в том, что последняя версия WebGrease устанавливает версию 3.4.1.9004 Antlr. Как только я установил WebGrease, а затем обновил Antlr до версии 3.5.0.2, ошибка исчезла.

YeeHaw1234
источник
11
Моя проблема была именно в этой проблеме. Мне пришлось раскрутить цепочку зависимостей в консоли диспетчера пакетов, удалив Microsoft.AspNet.Web.Optimization, WebGrease и Antlr (в указанном порядке), затем установив пакет Microsoft.AspNet.Web.Optimization, обновив пакет WebGrease и, наконец, обновив -package Antlr (в указанном порядке), чтобы получить последние версии и исправить проблему с версией Antlr.
Уэйд
13

Для меня удаление этого узла в файле web.config избавило от сообщения об ошибке:

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

Но что действительно сработало для меня, так это предоставление полного доступа (к userName, указанному в impersonate) к папке Temporary ASP.NET Files, находящейся в C: \ Windows \ Microsoft.NET \ Framework {version} (или Framework64).

Удостоверение также может храниться в параметрах пула приложений веб-сайта в IIS.

Убедитесь, что ваш пакет nuget установлен правильно с правильной версией. Если ничего не работает, просто попробуйте повторно добавить ссылку из локальной папки и установить для нее значение «Копировать локально».

живи любя
источник
1
Это решило проблему для меня. В web.config была настройка для олицетворения в промежуточной среде, и эта учетная запись пользователя не существовала в моем мире разработчиков.
ttomsen
Я попробовал все три предложения, и ни одно из них не сработало. Все еще получаю YPOD 1. В моем web.config 2 нет тега <identity. Я дал «полный контроль» как iis_usrs, так и пользователям \ johnny 3. Последние параметры кажутся хакерскими
dannyrosalex
Я решил это с помощью команды:ASPNET_REGIIS -GA impersonatedusername
cslecours 06
Это помогло решить мою проблему. Я работал локально, и поскольку имя учетной записи, упомянутое в этом элементе, не имеет доступа к моей папке dev.
Aamol
Спасибо, это решение действительно полезно.
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

Была проблема с impersonate = "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

У меня есть простое решение. Перейдите в папку своего собственного проекта и найдите папку пакетов.

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

Md Shahriar
источник
0

В проекте у меня была ссылка на WebGrease, но не было соответствующего элемента в packages.config. Я удаляю ссылку из проекта, потому что она мне больше не нужна. Теперь это работает.

Томаш Кубес
источник
0

Я попробовал все ответы в этом посте, но ни один из них не помог мне.

Итак, я удалил все каталоги / bin внутри всех проектов из своего решения, очистил и перестроил решение, и, наконец, оно сработало!

Все утро я потратил на поиски проблемы ...

Velociround
источник
0

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

Анчит
источник
это должно быть в комментарии
Usman Maqbool
0

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

Schmalls
источник
0

Я обновил все пакеты в диспетчере пакетов Nudget, и это сработало! В моем случае я размещаю свой сайт в GoDaddy

Joalcego
источник
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

Для меня решением было запустить Visual Studio от имени администратора. Очевидно, это была проблема с разрешениями.

Александр ван Трайффель
источник
0

Решением для меня было перейти в Инструменты> Диспетчер пакетов NuGet> Управление пакетами для решения.

Затем щелкните Antlr3 и убедитесь, что он установлен в:

  1. Стартап-проект
  2. Любые библиотеки, использующие отражение
  3. Любые библиотеки, вызывающие библиотеки, использующие отражение

В моем случае это было необходимо для 4 проектов. Как только это было сделано, проблема была окончательно решена.

Крис Москини
источник
0

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

Икрам Шах
источник
0

Удалено% temp%

Удаленная корзина

Удален .vs

Теперь работал у меня

Арун Прасад ES
источник
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, которые были удалены давно, но они были включены в файлы проекта. . Поэтому я их исключаю.

Мустафа Фалла
источник