在本地运行Asp.Net MVC应用程序时,一切运行正常,但是当在服务器上部署应用程序时,我收到此错误。
Could not load file or assembly 'WebGrease, Version=1.5.1.25624, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
我刚刚通过NuGet添加了System.Web.Optimization
框架,它使用了WebGrease。
如果我检查引用,我的WebGrease版本是1.5.2.14234,高于抱怨找不到的版本 - 1.5.1.25624。
在根网站配置中,我在运行时标记下面有以下内容:
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
</dependentAssembly>
如果我检查服务器上bin文件夹中的WebGrease.dll,则WebGrease DLL的版本为1.5.2.14234。谁可能要求其他版本1.5.1.25624以及任何想法如何解决这个问题?
非常感谢!
答案 0 :(得分:20)
我们的结果是错误,因为服务器上的实际根网络配置有一个不正确的dependentAssembly
标记,其中包含:
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" />
</dependentAssembly>
而不是:
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
</dependentAssembly>
因此发出错误的原因!
答案 1 :(得分:4)
我的项目也出现了同样的错误。事实证明,我的bin目录中有几个“XYZ-Copy.dll”导致了问题。我删除了所有XYZ-copy.dll文件,但它确实有效。
答案 2 :(得分:2)
我刚刚删除了C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET \中的所有内容 它的工作......如果您使用框架4然后尝试C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files \
答案 3 :(得分:2)
我尝试从Nuget安装最新版本:
install-package WebGrease
重新构建应用程序两次,错误就消失了。
希望它对某人有所帮助!答案 4 :(得分:1)
这是由
解决的1)运行程序包管理器控制台
2)在Console中,键入:'Install-Package Microsoft.AspNet.Web.Optimization'
解决了所有不正确的依赖关系并成功将Microsoft.AspNet.Web.Optimization添加到项目