【发布时间】:2011-02-15 05:40:00
【问题描述】:
我正在尝试使用我们的 PFX 文件在 Visual Studio 2010 中对程序集进行签名,在我输入私钥的密码后,我得到“尝试引用不存在的令牌”
【问题讨论】:
标签: code-signing visual-studio-2010
我正在尝试使用我们的 PFX 文件在 Visual Studio 2010 中对程序集进行签名,在我输入私钥的密码后,我得到“尝试引用不存在的令牌”
【问题讨论】:
标签: code-signing visual-studio-2010
以管理员身份运行 Visual Studio 为我解决了这个问题。
【讨论】:
我也有同样的问题。只需在 Visual Studio 命令提示符下使用 signtool 即可。有时signtool 会声称您的密码无效,但通常在尝试几次后它开始为我工作。
signtool.exe sign /f YOURCERT.pfx /p YOURPASSWORD YOURTARGET.exe
【讨论】:
signtool.exe sign /f YOURCERT.pfx /t YOURTIMESERVERURL /p YOURPASSWORD YOURTARGET.exe
如果您希望 Visual Studio 自动签署文件并使用 ClickOnce,这就是我必须做的:
获取OpenSSL 的副本。它是available for Windows。或者使用 Linux 机器,因为他们几乎都拥有它。
运行以下命令导出到密钥文件:
openssl pkcs12 -in certfile.pfx -out backupcertfile.key
openssl pkcs12 -export -out certfiletosignwith.pfx -keysig -in backupcertfile.key
然后在项目属性中就可以使用 PFX 文件了。
【讨论】:
这对我有用。
首先尝试在为您的项目启用密钥签名选项的情况下构建您的项目。构建将失败,转到“输出”窗口,您将看到如下错误:
错误 1 无法导入以下密钥文件:MyKey.pfx。这 密钥文件可能受密码保护。要更正此问题,请尝试导入 再次证书或手动将证书安装到 Strong 使用以下密钥容器名称命名 CSP: VS_KEY_7B9423FE45F4DBEB Project.SomeName
保存密钥库名称(例如 VS_KEY_7B9423FE45F4DBEB),稍后您将需要它。
现在按照以下步骤操作:
Visual Studio Command Prompt (2010) 快捷方式(x64,如果您在 x64 机器上)作为管理员(右键单击 Visual Studio 2010 命令提示符快捷方式并选择以管理员身份运行)。这应该会打开一个带有 Visual Studio 环境设置的管理命令提示符。 (不是常规的命令提示符)sn -d VS_KEY_xxxx 以及您在开头保存的错误消息中的密钥库名称sn -i xxx.pfx VS_KEY_xxxx,提示时输入密码,如果是数字证书则输入xxx.pfx【讨论】: