我在尝试运行我的MVC4
项目时遇到此错误,它在上次在我的其他计算机上工作正常,但是当我尝试从另一台计算机运行它时它给了我这个错误:
无法加载文件或程序集'Antlr3.Runtime(1)'或其中一个 依赖。定位程序集的清单定义没有 匹配程序集引用。 (HRESULT异常:0x80131040)
Install-Package Antlr3.Runtime -Pre
但它没有任何帮助,任何想法?
答案 0 :(得分:94)
我在尝试使用免费的Nlog日志记录平台时遇到了同样的问题。
这对我有所帮助:
在文件资源管理器中输入%TEMP%并删除所有临时文件。
之后我在Visual Studio中启动MVC5项目时没有收到错误。
答案 1 :(得分:39)
尝试通过执行以下操作之一删除ASP.Net的临时文件:
答案 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
最后解决了错误
答案 8 :(得分:2)
模仿的问题=&#34; true&#34;在web.config中,我删除了它工作的行!!
我再次放置了该行,并授予管理员权限给帐户用户进行模拟,我的整个应用程序都工作了:)
答案 9 :(得分:2)
如果手动添加引用,请尝试解锁Antlr3.Runtime.dll:
答案 10 :(得分:2)
对我来说,这是由Antlr的调试版本和运行时版本之间的不匹配引起的。
最后通过安装不同的Antlr包来解决它:Install-Package Antlr
答案 11 :(得分:1)
如果你正在使用假冒。答案是为用户授予您冒充访问以下文件夹的权限:
C:\Windows\Microsoft.NET\Framework[v4.0.30319 or the version that you're using]\Temporary ASP.NET Files
您的网站目录。
您也可能需要按以下方式创建文件夹:
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并确保它已安装在:
中在我的情况下,需要它的是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 WebGrease
和update-package Antlr
(按此顺序)以获取最新版本并更正Antlr版本问题。
答案 23 :(得分:0)
对我来说,我做了这些步骤,对我来说很有效:
1)我删除了bin
和obj
文件夹(某些文件未被Clean
项目删除)
2)我检查了一些文件,例如JS,这些文件很久以前已删除,但已包含在项目文件中。所以我排除了它们。
答案 24 :(得分:0)