1

我在几个地方遇到了相同的问题,包括 Stack Overflow 问题Visual Studio 报告错误 "PFX - Error Importing Key / Object already exists"

大多数人在 Windows Vista 和 Windows 7 上都遇到问题,但就我而言,我在 Windows XP 上以管理用户身份运行。我已经尝试了我找到的所有解决方案,但到目前为止都没有奏效。由于我找到的大部分信息都是几年前的:是否有一些更好/最新的信息,也许有更频繁的修复?

我的代码签名证书来自Go Daddy,它可以与SignTool.exe实用程序一起正常工作。我已经使用 SignTool.exe 签署了很多在 Visual Studio 之外构建的 EXE 文件,它们都验证正确。

我尝试使用 SignTool.exe 以这种方式为我当前的项目签名我的 EXE 文件,但似乎存在一些与我尝试用于该项目的ClickOnce发布相关的额外问题......哈希不匹配,并且 ClickOnce即使 EXE 文件已签名,仍报告为“发布者未知”。

4

1 回答 1

2

我仍然无法让 IDE 选项工作,但这对我有用,而且还不错:

  1. 在 IDE 中启用“签署 ClickOnce 清单”并选择“从商店”(从 PFX 文件中选择会产生相同的“对象已存在”错误)。

  2. 不要选中“签署程序集”。

  3. 添加构建后事件以运行:

    c:\signtool.exe sign /f c:\cert.pfx /p password /t http://tsa.starfieldtech.com c:\project\obj\debug\myapp.exe
    

所以基本上使用signtool.exe签名是诀窍,但清单也需要签名(我让IDE做),另一个不明显的部分是你需要从OBJ文件夹中签署EXE文件,而不是 BIN 文件夹。

我比我猜的 IDE 更喜欢这个,因为使用 IDE 我认为您每次都必须输入密码。这样,密码就在构建后事件命令行中。

于 2012-05-01T15:55:56.693 回答