使用Visual Studio 2010进行程序集签名时出错:"尝试引用不存在的标记"

Fia*_*acc 18 clickonce code-signing visual-studio-2010

我正在尝试使用我们的PFX文件在Visual Studio 2010中签署程序集.输入私钥密码后,我得到:

尝试引用不存在的令牌

我该如何解决这个问题?

Jos*_* M. 15

以管理员身份运行Visual Studio为我解决了这个问题.


Mat*_*ira 14

我也有同样的问题.只需使用signtoolVisual Studio命令提示符即可.有时signtool会声称您的密码无效,但通常经过几次尝试后它才开始为我工作.

signtool.exe sign /f YOURCERT.pfx /p YOURPASSWORD YOURTARGET.exe

  • 你如何使用ClickOnce和清单签名来做到这一点?在构建期间,您是否必须签署它才能工作? (5认同)
  • 我也有这个疯狂的问题,最终不得不将PFX导入我的本地计算机商店并在后期构建中使用它:"%ProgramFiles%\ Microsoft SDKs\Windows\v7.0A\Bin\signtool.exe"sign/a/n"你的CN"/ sm/t http://timestamp.comodoca.com/authenticode"$(TargetPath)" (4认同)
  • 完美的工作作为一个后期构建步骤,只需要更改为signtool.exe标志/ f YOURCERT.pfx/p YOURPASSWORD YOURTARGET.exe (3认同)

Bea*_*hed 9

如果您希望Visual Studio自动签署文件并使用ClickOnce,那么我就必须这样做:

  • 获取OpenSSL的副本.它适用于Windows.或者使用Linux盒子,因为他们几乎都拥有它.

  • 运行以下命令以导出到密钥文件:

    openssl pkcs12 -in certfile.pfx -out backupcertfile.key
    
    openssl pkcs12 -export -out certfiletosignwith.pfx -keysig -in backupcertfile.key
    
    Run Code Online (Sandbox Code Playgroud)

然后在项目属性中,您可以使用PFX文件.

  • 与[答案*相同*无法导入密钥文件'blah.pfx' - 错误'密钥文件可能受密码保护'*](http://stackoverflow.com/questions/2815366/cannot-import-the-keyfile-blah -pfx误差最密钥文件-可待密码PROTEC/8130302#8130302). (2认同)

rbo*_*boy 5

这对我有用。

首先尝试使用为您的项目启用的密钥签名选项来构建您的项目。构建将失败,转到“输出”窗口,您将看到如下错误:

错误 1 ​​无法导入以下密钥文件:MyKey.pfx。密钥文件可能受密码保护。要更正此问题,请尝试再次导入证书或使用以下密钥容器名称手动将证书安装到强名称 CSP:VS_KEY_7B9423FE45F4DBEB Project.SomeName

保存密钥库名称(例如 VS_KEY_7B9423FE45F4DBEB),稍后您将需要它。

现在按照以下步骤操作:

  1. 在 Windows 证书存储中导入数字证书密钥 (PFX)。在 Windows 资源管理器中双击 PFX 密钥并将其安装/导入到您的密钥库中(我实际上是通过选择手动选择库将它导入到受信任的根证书库中)。
  2. 以普通用户身份启动 Visual Studio 2010(我不会以管理员身份遇到此密钥签名问题,但我想以用户身份调试我的应用程序)(在整个过程中保持打开状态)
  3. 从“开始”菜单中打开Visual Studio Command Prompt (2010)快捷方式(如果您在 x64 机器上,则为 x64)作为管理员(右键单击 Visual Studio 2010 命令提示符快捷方式并选择以管理员身份运行)。这应该使用 Visual Studio 环境设置打开管理命令提示符。(不是常规的命令提示符)
  4. 在命令提示符下,输入sn -d VS_KEY_xxxx您在开头保存的错误消息中的密钥库名称
  5. 然后输入sn -i xxx.pfx VS_KEY_xxxx,提示时输入密码,xxx.pfx如果你的数字证书
  6. 返回 Visual Studio 并重建您的项目