无法加载文件或程序集XXX或其依赖项之一。定位的程序集的清单定义与程序集引用不匹配

时间:2013-10-25 09:13:08

标签: c# asp.net asp.net-mvc .net-assembly

在本地运行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以及任何想法如何解决这个问题?

非常感谢!

5 个答案:

答案 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添加到项目