【问题标题】:System.IO.FileLoadException: Could not load file or assembly 'Pkcs11Interop, Version=3.3.0.0System.IO.FileLoadException:无法加载文件或程序集'Pkcs11Interop,版本 = 3.3.0.0
【发布时间】:2019-05-31 03:19:52
【问题描述】:

我想开发可以读取令牌并执行 PDF 签名的应用程序。仅供参考,我成功签署了 pdf 文档,但是在我将 Pkcs11Interop 版本从 3.3.0.0 更新到 4.1.1.0 之后,签名变成了失败。我已尝试启用 AutoGenerateBindingRedirects,但我仍然无法签署 PDF

预计 PDF 已成功签名,但我收到此错误

System.IO.FileLoadException:无法加载文件或程序集 'Pkcs11Interop,版本 = 3.3.0.0,文化 = 中性,PublicKeyToken = null' 或其依赖项之一。定位程序集的清单定义 与程序集引用不匹配。 (HRESULT 的例外情况: 0x80131040)

Screenshot error

我的理解是,这个应用程序试图调用 Pkcs11interop version=3.3.0.0

但是它已经在 Nuget Repo 中提到了它的依赖关系。所以应该没问题吧?

Pkcs11Interop.PDF

/* App.config */

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
    </startup>
    <dependentAssembly>
        <assemblyIdentity name="Pkcs11Interop" publicKeyToken="c10e9c2d8c006d2a"/>
        <bindingRedirect oldVersion="3.3.0.0" newVersion="4.1.1.0"/>
    </dependentAssembly>
</configuration>

我必须做些什么来解决这个依赖错误?

【问题讨论】:

  • 你尝试过重新编译吗?给我们看看App.config 文件?有文字图片吗?
  • 我尝试清理和构建,但该错误仍然出现。已经在我的帖子上添加 App.config @vasily.sib 先生
  • 不应该是&lt;bindingRedirect oldVersion="3.3.0.0" newVersion="4.1.1.0"/&gt;吗? (版本号中额外的.0
  • 它没有工作先生 :((
  • 关闭 Visual Studio,然后使用文本编辑器(不是 Visual Studio)从 .csproj 文件中删除对该程序集的所有引用。删除项目文件夹中的bin和obj文件夹,然后打开VS重新添加对DLL的引用。

标签: c# pkcs#11 pkcs11interop


【解决方案1】:

我发现您正在尝试做的事情有两个问题:

  1. Pkcs11Interop 3.3.0 没有经过强签名,但所有较新的版本都是。因此,您需要从未签名的程序集重定向到无法使用 AFAIK 的已签名程序集。
  2. Pkcs11Interop 4.x 包含与 3.x 版本不兼容的 API 更改,因此即使您以某种方式使重定向工作 Pkcs11Interop.PDF 也无法使用更新版本的 Pkcs11Interop。

我可能会为更新版本的 Pkcs11Interop 更新 Pkcs11Interop.PDF,但我还没有 ETA => 目前最好还是坚持使用 Pkcs11Interop 3.3.0。

【讨论】:

  • 您好 jariq,感谢您的回答!但是当我使用 3.3.0 时,我在 AppType 和 SlotsType 的代码上遇到了错误
  • @dejulzZul 当然。 3.x 和 4.x 版本之间存在 API 重大更改,AppTypeSlotsType 枚举只是其中两个。你需要调整你的代码。
猜你喜欢
  • 2019-06-06
  • 1970-01-01
  • 2013-08-13
  • 1970-01-01
  • 2014-05-19
  • 2020-05-04
  • 1970-01-01
  • 1970-01-01
  • 2019-08-05
相关资源
最近更新 更多