【问题标题】:How to resolve "The located assembly's manifest definition does not match the assembly reference." error?如何解决“找到的程序集的清单定义与程序集引用不匹配。”错误?
【发布时间】:2017-02-15 14:51:33
【问题描述】:

我从 git hub 下载了 pdfiumviewer 的源代码。我对该解决方案中的一个项目进行了更改。然后我将该项目添加到我的应用程序中,并将该项目的引用添加到我的应用程序的一个项目中。我不得不取消选中 PDfiumViewer 项目的签名选项,因为其中的一些 dll该项目未签名。我能够成功构建应用程序。但是在运行时,当我创建 PDfiumviewer 项目类之一的对象时。它给了我以下错误:

无法加载文件或程序集 'PdfiumViewer, Version=2.11.0.0, Culture=neutral, PublicKeyToken=null' 或其依赖项之一。这 定位程序集的清单定义与程序集不匹配 参考。 (HRESULT 异常:0x80131040)

程序集的版本号是正确的。那么,为什么会出现这个错误?

【问题讨论】:

    标签: c# manifest .net-assembly pdfium


    【解决方案1】:

    问题是我已将旧的未修改 PdfiumViewer dll 的引用添加到另一个项目。因此,两个 dll(旧的和自定义的)在运行时存在冲突。我删除了旧的 dll 引用并且它起作用了。

    【讨论】:

    • 是的,感谢您的回答!这个错误让我浪费了很多时间
    【解决方案2】:

    我也遇到过这个问题,我的情况是我必须将另一个解决方案的引用添加到我的项目中,删除引用不是一个选项 - 对我有用的是在两个解决方案上从 nuget 包管理器重新安装 SQLclient。希望它能帮助别人

    【讨论】:

      【解决方案3】:

      这里的问题是您有一个引用 Pdfium 库 v2.11.0.0 的库。该库可以是您之前构建的程序集,也可以是来自 Pdfium 并引用此版本库的另一个程序集。当您构建您的库版本时,您可能没有使用相同的版本号,并且它不会被正确命名。要解决此问题,您可以在应用程序配置文件中添加程序集绑定重定向,以将有问题的库重定向到您自定义构建的库。

      我写了一个程序来自动修复这个问题:https://github.com/BackTrak/DependencyFixup/releases/tag/1.0.0.0

      我知道这个问题很老,但希望这对其他人有帮助!

      【讨论】:

        猜你喜欢
        • 2011-08-20
        • 2016-09-21
        • 1970-01-01
        • 1970-01-01
        • 2010-09-10
        相关资源
        最近更新 更多