1

我在使用签名的 ClickOnce 部署清单构建 VS2012 项目时遇到问题。用于签署项目的 .pfx 证书使用付费密钥进行密码保护。我将 Jenkins 与 MSBuild 插件一起使用。

紧随其后出现的错误BUILD FAILED是:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2455,5):错误 MSB3325:无法导入以下密钥文件:xxxx.pfx。密钥文件可能受密码保护。要更正此问题,请尝试再次导入证书或手动将证书安装到具有以下密钥容器名称的强名称 CSP:VS_KEY_11234A3322194 [C:\Program Files (x86)\Jenkins\jobs\xxxx\workspace\xxxx\xxxx. csproj]

我已尝试在本地计算机上将证书安装为受信任的根证书(使用certlm.msc),并尝试将其安装到 提到的特定容器中sn.exe,但这没有区别。我已确保 Jenkins 服务作为特定用户而不是本地系统帐户运行。

如果我在 VS2012 中打开项目,我可以构建它,但只有在我选择项目属性的“签名”选项卡下的证书并输入密码后。即使 .csproj 设置为使用该特定文件来签署 ClickOnce 清单也是如此。

我可以以管理员用户身份从命令行使用 MSBuild 成功构建项目,但是当 Jenkins 运行构建时它会失败。我还尝试将证书作为/property:AssemblyOriginatorKeyFile参数传递给 Jenkins 的 MSBuild。

关于可能导致这种情况的任何想法?

4

1 回答 1

2

我不知道“Jenkins”是什么,但我知道证书和 ClickOnce。证书必须安装在进行构建的用户帐户下。尝试导入它并使用默认值,这会将其导入用户存储,而不是将其导入受信任的发布者或较旧的文件夹之一。运行 certmgr.msc 导入后即可看到。

我们在 TFS 服务器上进行自动构建时遇到了这个问题。每年,我们都必须登录执行构建的帐户并导入新的签名证书。

于 2013-09-08T17:21:52.027 回答