.net – 无法加载文件或程序集“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,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

解决方法

你需要在IIS中更改它的运行时版本.
右键单击虚拟目录
并单击高级设置
将其更改为正确的池设置.我可以说重新安装后你的游泳池设置不正确.

您可以找到该过程

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

如果这不起作用,此时您可以做的首选是从系统中引用框架4卸载所有.Net安装.清理系统,然后重新安装所有内容.

但我发现你使用的是IIS 7.5.因此,您可以发现许多功能变化,需要谨慎处理.您可以尝试在尝试重新安装之前设置应用程序池和其他设置.

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...