6

我在 Visual Studio 2008 中设置了我的简单项目以使用ClickOnce安装程序。我已指定 ClickOnce 清单应由我们公司的PFX文件签名。当我在 Visual Studio 中进行设置时,它要求输入 PFX 文件的密码,我很乐意提供。当我在 Visual Studio 中构建和发布时,一切正常。它也可以在我的机器上从MSBuild正常构建。

但是,当我尝试在我们的构建机器上使用 MSBuild 构建它时,我收到以下错误:

ERROR MSB3321 in 
    C:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets(1805,7)
    : Importing key file "ourCertificate.pfx" was canceled (sic).

经过一番搜索,我发现了一些信息,说这是因为我没有提供密码。但我找不到在构建机器上提供密码的方法。我还看到了安装 Visual Studio 的建议,并在 Visual Studio 中提供一次密码,之后它将在 MSBuild 中运行。但我真的很想避免在构建机器上安装 Visual Studio。

我尝试双击 PFX 文件将其导入并在询问时输入密码,但这没有帮助。

如果我在 Visual Studio 中检查“签署程序集”并提供相同的 PFX 文件,也会发生同样的事情。

我该如何解决这个问题?是否有手动方式将密码存储在构建机器上?

4

2 回答 2

7

您可以将证书导入构建机器上的 Trusted Publisher 存储吗?(Internet Explorer > 工具 > 选项 > 内容 > 证书)

我不使用 MSBuild 创建部署;我用法师。但是,我使用我们的 .pfx 文件将我们的证书导入到我的 Trusted Publisher 存储中。为此,我必须输入密码。完成后,当我在 Mage 中保存清单时,我不再需要提供密码。我可以简单地从我的商店中选择证书。

于 2009-05-20T14:19:55.963 回答
0

John Robbins 有一篇关于如何在MSBuild中包装SignTool.exe的博客文章,代码签名——它比你想象的更便宜、更容易

于 2009-10-20T15:13:16.480 回答