我们正在用 C# 构建一个 Outlook 插件。它在 VS 中构建没有问题,并使用临时 pfx 证书进行签名。我们希望将构建过程放在 Jenkins 中并让它自动运行。
我们尝试使用 MSBuild 运行 VS 解决方案。它在开发机器上运行良好,但在 Jenkins 中出现错误:
无法导入以下密钥文件:OutlookPlugin_TemporaryKey.pfx。密钥文件可能受密码保护。要更正此问题,请尝试再次导入证书或手动将证书安装到具有以下密钥容器名称的强名称 CSP:VS_KEY_A688DC31A30F3EF1
我们不知道如何为自动构建指定 pfx 密码。或者以其他方式自动化签名过程。
我们找到的一种解决方案是在同一台机器上以与自动化流程相同的用户身份在 VS 中打开项目并输入密码。这不起作用,可能是因为 Jenkins 每次都会清除工作区。如果我们尝试在不签名的情况下进行编译,然后再对其进行签名,它会抱怨必须对 ClickOnce 程序集进行签名。似乎 Office 插件必须使用 ClickOnce。
那么,如何在构建文件的某处指定 pfx 密码呢?
我们将 VS 2010 与 Office 工具一起使用。