我更新了我的MVC项目的所有软件包,我收到了以下错误:
无法加载文件或程序集'Antlr3.Runtime,Version = 3.5.0.2, Culture = neutral,PublicKeyToken = eb42632606e9261f'或其中一个 依赖。定位程序集的清单定义没有 匹配程序集引用。 (HRESULT异常:0x80131040)
使用剃刀(.cshtml)文件构建项目会给我带来更多错误
答案 0 :(得分:30)
以下是我设法解决的问题:
转到解决方案资源管理器,在“引用”下选择Antlr
,右键单击并说出属性。确保文件版本与编译器正在查找的版本相同。就我而言,MSBuild需要版本5.5.0.2,但参考属性显示的是早期的2.x版本。
我所要做的就是转到包管理器控制台并输入:
PM> update-package Antlr
然后再次构建项目,如果更多程序集出现相同的错误,也请更新它们。您的问题将得到解决
答案 1 :(得分:2)
如果您的配置文件中有一个恶意绑定重定向,而该重定向指向您没有的版本,则会发生这种情况。
在我们的示例中,我们引用的是PostSharp 5.0.50 Nuget程序包,并且配置文件中包含以下内容,这导致该文件改为查找PostSharp版本5.0.51。
<dependentAssembly>
<assemblyIdentity name="PostSharp" publicKeyToken="b13fd38b8f9c99d7" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.0.51.0" newVersion="5.0.51.0"/>
</dependentAssembly>
我通过删除绑定重定向来修复它,因为这不是必需的。您还可以通过将绑定重定向的版本更改为与您引用的Nuget包相同的版本来解决此问题。
答案 2 :(得分:1)
我的MVC 5应用程序出现了同样的错误。尝试了一切,
Fianlly我能够通过简单地从项目的bin文件夹中删除所有dll并再次构建项目来解决问题。 虽然我仍然不确定这个参考错误的真正原因。
答案 3 :(得分:1)
我尝试了上面的解决方案来更新特定的包,但是没有成功,但更新所有包确实有效。使用包管理器控制台;
update-package -Reinstall
随后重建解决方案。
答案 4 :(得分:0)
Update-Package -Reinstall Antlr
为我工作...
此外,在发布时,请确保选中"Delete Existing Files"
复选框。