所以问题来了:我们决定购买一个代码签名证书,我们从 Godaddy 购买了一个 p12 格式的证书。
经过研究,我发现 p12 和 pfx 是同一件事,只是扩展名不同,所以我将其重命名为 pfx。我还得到了 spc 和 p7c 文件,但我不知道如何处理它们。
无论如何,我尝试将我的证书添加到我的 Visual Studio 2013 解决方案中,这就是我得到的:
首先我收到密码提示,输入密码后我是 收到错误消息
"An attempt was made to reference a token that does not exist."
在我第二次尝试安装 pfx 时,我根本没有收到任何提示或错误消息,但当我构建时,我收到错误
"Cannot import the following key file: something.pfx
The key file may be password protected.
To correct this, try to import the certificate again or
manually install the certificate to the Strong Name CSP with the following
key container name: VS_KEY_33FA18307607ECFB"
所以我正在使用
sn -i something.pfx VS_KEY_33FA18307607ECFB
完成时没有错误,但是当我尝试时 再次构建时,我收到了具有相同容器名称的完全相同的错误。
"Cannot import the following key file: something.pfx ...
with the following key container name: VS_KEY_33FA18307607ECFB"
我尝试使用 Signtool,这是 Goddady 支持人员推荐的替代方案,但尽管它对程序集进行了签名,但它没有提供我需要的强命名。
我还尝试使用
将证书从 pfx 提取到 snk sn -p something.pfx key.snk
并选择了延迟签名,但项目没有再次构建,并且出现更多错误。
反问:为什么这么难?很多人都遇到这个问题。
有人可以帮忙吗?
我拥有 Comodo (.p12) 证书,并遇到了同样的问题,并根据 @SmithPlatts 答案和 @Ares 评论解决了它。对于那些不了解证书(比如我)的人来说,这是一个详细的演练:
certutil -importPFX "<certFilepath>\<certFilename>.p12" AT_SIGNATURE
(AT_SIGNATURE 使此功能有效,而不是[右键单击 .p12 文件]-->“安装 PFX”)我刚刚遇到了同样的问题,这篇文章救了我的培根!
我需要做的就是重新创建我的代码签名证书,并将 KeySpec 设置为 2 (AT_SIGNATURE),现在 VS (2013) 导入并签署我的程序集,没有错误! :-D
我意识到这与您的情况有点不同,但我希望这能在某种程度上有所帮助......
我遇到了这个问题,并通过以管理员身份打开 Visual Studio 修复了它。
我通过使用 openssl 和 -keysig 选项重新创建 PFX 解决了这个问题。
openssl pkcs12 -export -out "MyPfx.pfx" -keysig -inkey "MyKey.key" -in "MyCer.cer"
遇到了这个问题以及人们提到的相关问题。
在大型 IT 部门的开发部门的企业环境中工作,我没有完整的本地管理权限。因此,当我运行 VS 时,它不会以本地管理员身份运行。
一旦我设置了运行 VS 2013/2015 的快捷方式,我在执行程序集时遇到的问题...就消失了。
这也可以节省一些人的时间,也可以避免把头发从根部拔掉。