4

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

无法加载文件或程序集“PdfiumViewer,Version=2.11.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

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

4

3 回答 3

9

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

于 2017-02-16T06:50:12.820 回答
0

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

于 2020-02-18T08:43:09.607 回答
0

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

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

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

于 2022-01-08T21:01:15.130 回答