我在Visual Studio 2008中设置了我的简单项目以使用ClickOnce安装程序 . 我've specified that the ClickOnce manifests should be signed by our comapny' s 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文件,则会发生同样的情况 .
我该如何解决这个问题?是否有手动方式在构建机器上存储密码?
2 回答
John Robbins有一篇关于如何在MSBuild,Code Signing – It’s Cheaper and Easier than You Thought中包装SignTool.exe的博客文章 .
您可以将证书导入构建计算机上的Trusted Publisher存储中吗? (Internet Explorer>工具>选项>内容>证书)
我不使用MSBuild来创建部署;我用法师 . 但是,我使用.pfx文件将我们的证书导入我的Trusted Publisher商店 . 为此,我必须输入密码 . 完成之后,当我在Mage中保存清单时,我不再需要提供密码 . 我只需从我的商店中选择证书即可 .