2014-02-07 5 views
3

Я нахожу аналогичный вопрос, но нет решения для моей проблемы.Не удалось загрузить файл или сборку «Antlr3.Runtime» или одну из его зависимостей

Could not load file or assembly 'Antlr3.Runtime' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded

Я получаю эту ошибку только в IIS. Я пытаюсь установить в IIS 7.5. Я установил пул приложений как 4.0, Integrated.

Раньше все работало нормально. После того, как я установил фреймворк 4.5 VS 2012 Express, я получил исключение, используя MachineKeyCryptography. Поэтому я удалил 4.5 рамки и VS 2012, из-за которых этот беспорядок происходит.

Исключением, которое я получаю, является ниже.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.BadImageFormatException: Could not load file or assembly 'Antlr3.Runtime' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Assembly Load Trace: The following information can be helpful to determine why the assembly 'Antlr3.Runtime' could not be loaded.

WRN: Assembly binding logging is turned OFF. To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. Note: There is some performance penalty associated with assembly bind failure logging. To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

Stack Trace:

[BadImageFormatException: Could not load file or assembly 'Antlr3.Runtime' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.] System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +0
System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +416
System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +166 System.Reflection.Assembly.Load(String assemblyString) +35
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +190

[ConfigurationErrorsException: Could not load file or assembly 'Antlr3.Runtime' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.]
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +11244040
System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +388 System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +232
System.Web.Configuration.AssemblyInfo.get_AssemblyInternal() +48
System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +210
System.Web.Compilation.BuildProvidersCompiler..ctor(VirtualPath configPath, Boolean supportLocalization, String outputAssemblyName) +76 System.Web.Compilation.ApplicationBuildProvider.GetGlobalAsaxBuildResult(Boolean isPrecompiledApp) +283
System.Web.Compilation.BuildManager.CompileGlobalAsax() +50
System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +676

[HttpException (0x80004005): Could not load file or assembly 'Antlr3.Runtime' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.]
System.Web.Compilation.BuildManager.ReportTopLevelCompilationException() +76 System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +1012 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters) +1025

[HttpException (0x80004005): Could not load file or assembly 'Antlr3.Runtime' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.] System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +11338038
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +88 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +4356276

+0

Возможный дубликат [Не удалось загрузить файл или сборку «Antlr3.Runtime (1)» или один из его зависимостей] (https://stackoverflow.com/questions/20180634/could-not-load-file-or-assembly-antlr3-runtime-1-or-one-of-its-dependencies) –

ответ

5

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

Вы можете найти процедуру, как

In Application Pools-> Select your site ->Set Application Pool Defaults -> Select your correct version

Если это не работает, предпочтительная вещь, которую вы можете сделать в этот момент удалить все установки .Net из вашей системы ссылки на базы 4. Очистите систему и затем переустановите все свежее.

Но я вижу, что вы используете IIS 7.5. Таким образом, вы можете найти множество функциональных изменений, и их нужно тщательно изучать. вы можете попробовать установить свой пул приложений и другие параметры перед попыткой переустановки.

+0

спасибо за ваш ответ – Cassini

+1

+ 1. Вы спасли мое время –

2

В моем случае коды находятся в нескольких проектах lib и одном веб-приложении. Каждый раз, когда я запускаю «rebuild all», и все будет в порядке, а «сборка» отдельного lib вызовет ошибку Antlr3.runtime.

Я тщательно проверил все зависимости. Оказалось, что есть 2 версии Antlr3.runtime.

Чтобы решить эту проблему:

  1. Используйте "Ctrl +;" для поиска «Antlr3» в explorer. Если найдено более одного, продолжайте; или это может быть вызвано некоторыми другими причинами, как сказал Маверик выше.
  2. Щелкните правой кнопкой мыши один из них, нажмите «Найти в проводнике сборки». В списке должно быть несколько версий Antlr3.runtime с разными версиями.
  3. Вернитесь к исследователю решений, удалите все старые зависимости.
  4. В обозревателе решений, щелкните правой кнопкой мыши зависимости удаленного проекта, добавьте зависимость. В следующем окне диспетчера ссылок нажмите «просмотреть» внизу.
  5. Зависимости находятся в папке «/ Папка/пакеты решений» (она должна быть создана NuGet). Там вы увидите как минимум 2 папки Antlrs3.runtime с разными версиями. Выберите самый новый.

К моему удивлению, существует множество других папок с тем же именем и разными версиями. После того, как я решил проблему Antlr3, другой Newtonsoft.Json вызвал ту же проблему и был исправлен таким же образом.

Я думаю, что после того, как мы разрешим Nuget загружать отсутствующие пакеты (Tools/Option/Package Manager/General), когда новый проект нуждается в пакете, NuGet получает самую новую версию с сервера (btw, где?). Но он всегда забывает обновлять старые проекты, которые зависят от старой версии.

0

Я не удалять файлы в ТЕМП

1.(%TEMP%) папку
2. ни C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files разрешить мою. Основной причиной ошибки была версия ссылки «Antlr3.Runtime», не такая же, как упоминаемая в 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> 

Решение было обновление до Lastest версии 3.5.0.2 из Antlrs.Runtime

Смежные вопросы

 Смежные вопросы