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

本文关键字:程序集 单定义 不匹配 引用 定义 XXX 文件 加载 依赖 | 更新日期: 2023-09-27 18:36:54

在本地运行 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。

在根 Web 配置中,我在运行时标记下方有以下内容:

<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 并且知道如何解决这个问题?

多谢!

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

从我们的角度来看,这是一个错误,即服务器上的实际根 Web 配置具有不正确的 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>

因此,为什么会发出错误!

我的项目也遇到了同样的错误。事实证明,我的 bin 目录中有几个"XYZ-Copy.dll"导致了问题。我删除了所有XYZ复制.dll文件,它起作用了。

我刚刚删除了 C:''WINDOWS''Microsoft.NET''Framework''v2.0.50727''Temporary ASP.NET'' 中的所有内容它的工作...如果您使用的是框架 4,请尝试 C:''Windows''Microsoft.NET''Framework''v4.0.30319''临时 ASP.NET 文件''

我尝试从Nuget安装最新版本:

 install-package WebGrease

重新生成应用程序两次,错误消失。

希望对某人有所帮助!

此问题已通过

1) 运行包管理器控制台

2) 在控制台中,键入:"安装包Microsoft.AspNet.Web.Optimization"

解决了所有不正确的依赖关系,并成功将Microsoft.AspNet.Web.Optimization添加到项目中