HRESULT:0x80131040:定位的程序集的清单定义与程序集引用不匹配

59 .net nunit ncover

定位的程序集的清单定义与程序集引用不匹配

通过ncover运行nunit时得到这个.任何的想法?

Jer*_*Gee 48

这是程序集之间的不匹配:从程序集引用的DLL没有预期的方法签名.

清理解决方案,重建所有内容,然后重试.

另外,如果这是对GAC中某些内容的引用,请务必小心; 它可能是某个地方的东西指向一个不正确的版本.确保(通过每个引用的属性)选择了正确的版本或将特定版本设置为false.

  • 有没有办法强制编译器在编译时检查这种事情?我发誓这是VS2005的默认设置. (8认同)

Kyl*_*yle 9

我最近有这个问题,我在有问题的dll上运行'depends.exe'.它向我展示了dll是在x86中编译的,而一些依赖项是在x64中编译的.

如果您仍然遇到麻烦,我建议使用depends.exe.

  • 还有Depends.Net,http://www.netomatix.com/development/DependsNet.aspx我的问题是平庸的,module1想要加载module2版本5.0.0.0,而module2实际上是5.0.8.3760.取决于没有标记这一点,Depends.Net做了. (4认同)
  • 到 DependNet 的链接已损坏,https://github.com/isindicic/DependencyWalker.Net/releases 我反编译了 exe 并检查了源代码,没有狡猾,并且有一个很好的 UI。 (2认同)

fgu*_*gui 8

在我的wcf休息服务项目的情况下,我不得不在web.config中添加一个运行时部分,其中所请求的dll是:

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" />
        <bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
      </dependentAssembly>
.
.
.
  <runtime>
Run Code Online (Sandbox Code Playgroud)


Mau*_*rez 6

当测试环境的一个DLL的版本与开发环境不匹配时,通常会发生这种情况.

清理并构建您的解决方案,并将所有DLL应用到发生错误的环境中,以便修复它


j.j*_*.k. 6

只需删除 bin 文件夹,然后项目将重新创建所有内容,现在就可以工作了。


小智 5

通过共享文件夹从不同计算机访问项目文件时,我遇到了类似的问题。就我而言,clean + rebuild 没有帮助。必须从输出目录中删除 bin 和 objects 文件夹。


kyo*_*lys 5

通过删除所有运行时部分解决了我的问题

<runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
Run Code Online (Sandbox Code Playgroud)


may*_*ʎɐɯ 5

就我而言,我在调试时收到此消息:

"Error while calling service <ServiceName> Could not load file or assembly 'RestSharp, 
Version=105.2.3.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. 
The located assembly's manifest definition does not match the assembly reference.
(Exception from HRESULT: 0x80131040)"
Run Code Online (Sandbox Code Playgroud)

原因

在我的项目中,我有 2 个使用 RestSharp 的内部组件,但两个组件都有不同版本的 RestSharp(一个带有 version105.2.3.0另一个带有 version 106.2.1.0)。

解决方案

将其中一个组件升级到更新版本或降级另一个组件。在我的情况下,对我来说,从NuGet 包管理器降级106.2.1.0105.2.3.0更新组件比更新组件更安全。所以这两个组件具有相同的版本。

重建并解决了问题。