签署程序集“<assemblyname> .dll”时出现加密失败 - “提供程序的错误版本”</assemblyname>

时间:2009-09-29 14:43:24

标签: signing strongname authenticode cryptography

我从一家知名提供商处购买了authenticode证书。

现在,我希望强化一个程序集,然后对其进行数字签名。

这是我到目前为止所做的:

  • 通过运行sn.exe -p keypair.pfx key.snk从pfx提取公钥
  • 选中项目属性签名选项卡上的“签署程序集”和“仅延迟签名”复选框
  • 提供key.snk作为用
  • 签名的密钥文件
  • 通过运行sn.exe -tP key.snk
  • 提取公钥标记
  • 通过运行sn -Vr *,
  • 在我的devbox上禁用强名称验证

这个想法是禁用团队构建的延迟签名,并在那里提供keypair.pfx文件。这样,出于安全原因,我可以在团队构建服务器上完全签署限制访问权限的程序集,而不在开发框上提供私钥。

但是,当尝试在本地构建程序集时,我收到以下错误:

  

签名时加密失败   汇编'.dll' - '糟糕   提供者版本

有人有解决方案吗?

1 个答案:

答案 0 :(得分:1)

我收到了Comodo的回复:

  

VS2005 / 2008存在问题   authenticode证书。 (微软   等级)他们不能用于强   命名组件。你必须创造   你自己的私钥来做强者   姓名签名。