无法加载文件或程序集“Antlr3.Runtime(1)”或其依赖项之一

时间:2013-11-24 20:34:16

标签: .net asp.net-mvc

我在尝试运行我的MVC4项目时遇到此错误,它在上次在我的其他计算机上工作正常,但是当我尝试从另一台计算机运行它时它给了我这个错误:

  

无法加载文件或程序集'Antlr3.Runtime(1)'或其中一个   依赖。定位程序集的清单定义没有   匹配程序集引用。 (HRESULT异常:0x80131040)

在阅读了这个here后,我尝试了do

  

Install-Package Antlr3.Runtime -Pre

但它没有任何帮助,任何想法?

25 个答案:

答案 0 :(得分:94)

我在尝试使用免费的Nlog日志记录平台时遇到了同样的问题。

这对我有所帮助:

在文件资源管理器中输入%TEMP%并删除所有临时文件。

之后我在Visual Studio中启动MVC5项目时没有收到错误。

答案 1 :(得分:39)

尝试通过执行以下操作之一删除ASP.Net的临时文件:

  • 在文件资源管理器中输入%TEMP%并删除所有临时文件。
  • 转到文件夹" C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files"并删除所有文件。

答案 2 :(得分:29)

不要忘记清除Framework64中的临时ASP.NET文件。这对我有用。

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

答案 3 :(得分:22)

以防这有助于某人。
我有一个MVC 5应用程序的这个问题。从 bin 目录中删除 Antlr3.Runtime.dll 并重新构建修复此问题。

答案 4 :(得分:17)

我的问题是最新版本的WebGrease安装了Antlr的3.4.1.9004版本。 一旦我安装了WebGrease,然后将Antlr更新到版本3.5.0.2,错误就消失了。

答案 5 :(得分:10)

如果有任何解决方案可以解决您的问题,请验证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>

答案 6 :(得分:8)

对我来说,删除web.config文件中的此节点可以消除错误消息:

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

但对我来说真正有用的是授予对C:\ Windows \ Microsoft.NET \ Framework {version}(或Framework64)中的Temporary ASP.NET Files“文件夹”的完全访问权限(对于impersonate中指定的userName)

身份也可能存储在IIS中的“网站应用程序池设置”中。

确保使用正确的版本正确安装了nuget包。如果没有其他工作,那么只需尝试从本地文件夹重新添加引用并将其设置为Copy Local。

答案 7 :(得分:6)

一种简单的方法是更新antlr和webgrease

  1. 转到套餐控制台管理员
  2. 然后尝试逐个应用这些代码
  3. PM&gt; Update-Package Antlr
  4. PM&gt; Update-Package WebGrease
  5. 最后解决了错误

答案 8 :(得分:2)

模仿的问题=&#34; true&#34;在web.config中,我删除了它工作的行!!

我再次放置了该行,并授予管理员权限给帐户用户进行模拟,我的整个应用程序都工作了:)

答案 9 :(得分:2)

如果手动添加引用,请尝试解锁Antlr3.Runtime.dll: enter image description here

答案 10 :(得分:2)

对我来说,这是由Antlr的调试版本和运行时版本之间的不匹配引起的。

最后通过安装不同的Antlr包来解决它:Install-Package Antlr

答案 11 :(得分:1)

如果你正在使用假冒。答案是为用户授予您冒充访问以下文件夹的权限:

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

  2. 您的网站目录。

  3. 您也可能需要按以下方式创建文件夹:

    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

答案 12 :(得分:0)

在一个项目中我引用了WebGrease,但是packages.config中没有相应的元素。我从项目中删除了引用,因为我不再需要它了。它现在有效。

答案 13 :(得分:0)

我在这篇文章中尝试了所有答案,但没有一个能为我工作。

所以我从我的解决方案中删除了所有项目中的所有/ bin目录,清理并重建了解决方案,最终工作了!

我整个上午都在浪费工作来解决问题...

答案 14 :(得分:0)

对我有用的是从我的webconfig(在system.web属性下)中删除identity = true并再次构建解决方案并再次发布(如果需要),它就像一个魅力!

答案 15 :(得分:0)

我在Nudget程序包管理器中更新了所有程序包,但它确实有效!在我的情况下,我在GoDaddy中托管我的网站

答案 16 :(得分: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”并重新启动服务器。 一切都还不错。

答案 17 :(得分:0)

对我来说,解决方案是以管理员身份运行Visual Studio。这显然是一个权限问题。

答案 18 :(得分:0)

我的解决方案是去工具&gt; NuGet包管理器&gt;管理解决方案包

然后单击Antlr3并确保它已安装在:

  1. 启动项目
  2. 任何使用反射的库
  3. 任何调用使用反射的库的库
  4. 在我的情况下,需要它的是4个深度项目。一旦完成,这个问题终于得到了解决。

答案 19 :(得分:0)

我刚刚面对这个问题并尝试了上述解决方案,但现在没有任何效果 我不得不从bin floder中删除它的dll并重建然后从packages文件夹中删除所有相关文件并使用包管理器控制台恢复包

答案 20 :(得分:0)

已删除%temp%

已删除垃圾箱

已删除的.vs

现在为我工作

答案 21 :(得分:0)

就我而言,当我克隆一个项目时,Visual Studio 2019在项目路径中将空格字符替换为'%20'。 然后,当VS试图找到金块包装时,它找不到正确的路径。

答案 22 :(得分:0)

升级Microsoft.AspNet.Web.Optimization

后,我遇到了这个问题

update-package WebGreaseupdate-package Antlr(按此顺序)以获取最新版本并更正Antlr版本问题。

答案 23 :(得分:0)

对我来说,我做了这些步骤,对我来说很有效:

1)我删除了binobj文件夹(某些文件未被Clean项目删除)

2)我检查了一些文件,例如JS,这些文件很久以前已删除,但已包含在项目文件中。所以我排除了它们。

答案 24 :(得分:0)

我有一个简单的解决方案。转到您自己的项目文件夹,然后找到一个包文件夹。

enter image description here