将强命名密钥(pfx)添加到服务器上的所有用户

时间:2015-01-27 17:02:14

标签: .net windows jenkins msbuild pfx

我正在尝试配置jenkins windows slave msbuild任务,但是我遇到点击一次项目及其强名称密钥的问题。

根据安装PFX密钥的帐户,具体取决于结果和错误。

背景:

项目(ProjectX和ProjectY)

  • .net 4
  • ClickOnce app
  • 使用pfx密钥" ABC.pfx"签署大会
詹金斯Windows奴隶:

  • Jenkins Windows服务在用户帐户下运行" jenkins@work.com"
  • 当jenkins为每个项目和分支创建一个工作区时,我们复制了" ABC.pfx"文件到c:\

被抄袭的决议1:

我使用我的用户帐户将远程桌面安装到服务器上:

  • 将ABC.pfx复制到C:\
  • 的服务器上
  • 以管理员身份运行命令提示符

    cd c:\ " C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Bin \ sn.exe" -d VS_KEY_123456789 " C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Bin \ sn.exe" -i ABC.pfx VS_KEY_123456789

  • 打开正常的命令提示符并运行(ClickOnce项目已构建,然后发布msbuild命令):

    " C:/Windows/Microsoft.NET/Framework/v4.0.30319/MSBuild.exe" " C:/jenkins/workspace/project-x/ProjectX/ProjectX.sln" " /冗长:正常" / P:配置="释放" / P:OUTDIR =" C:/詹金斯/工作空间/项目-X /输出/ projectX创建/" " /目标:清洁;生成" / maxcpucount

    " C:/Windows/Microsoft.NET/Framework/v4.0.30319/MSBuild.exe" " C:/jenkins/workspace/project-x/ProjectX/ProjectX.sln" " /冗长:正常" / P:配置="释放" / P:OUTDIR =" C:/詹金斯/工作空间/项目-X /输出/ projectX创建/" " /靶:发布" / maxcpucount

  • 两个msbuid命令都可以正常运行

  • 在Jenkins帐户下运行时,我们收到错误:

    C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets(2482,5):错误MSB3326:无法导入以下密钥文件:ABC.pfx。密钥文件可能受密码保护。要更正此问题,请尝试再次导入证书或手动将证书导入当前用户的个人证书存储区。 [C:\詹金斯\工作空间\项目-X \ projectX创建\ ProjectX.csproj]

    C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets(2482,5):错误MSB3321:导入密钥文件" ABC.pfx"取消了。 [C:\詹金斯\工作空间\项目-X \ projectX创建\ ProjectX.csproj]

被抄袭的决议2:

我使用Jenkins用户帐户将远程桌面升级到服务器

  • 将ABC.pfx复制到C:\
  • 的服务器上
  • 以管理员身份运行命令提示符

    cd c:\ " C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Bin \ sn.exe" -d VS_KEY_123456789 " C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Bin \ sn.exe" -i ABC.pfx VS_KEY_123456789

  • 打开正常的命令提示符并运行:

    " C:/Windows/Microsoft.NET/Framework/v4.0.30319/MSBuild.exe" " C:/jenkins/workspace/project-x/ProjectX/ProjectX.sln" " /冗长:正常" / P:配置="释放" / P:OUTDIR =" C:/詹金斯/工作空间/项目-X /输出/ projectX创建/" " /目标:清洁;生成" / maxcpucount

  • Jenkins用户帐户收到错误:

    C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets(2482,5):错误MSB3326:无法导入以下密钥文件:ABC.pfx。密钥文件可能受密码保护。要更正此问题,请尝试再次导入证书或手动将证书导入当前用户的个人证书存储区。 [C:\詹金斯\工作空间\项目-X \ projectX创建\ ProjectX.csproj] C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets(2482,5):错误MSB3321:导入密钥文件" ABC.pfx"取消了。 [C:\詹金斯\工作空间\项目-X \ projectX创建\ ProjectX.csproj]

  • 我也遇到了构建错误

有没有人知道如何让Jenkins用户帐户确认PFX密钥?

感谢您的帮助, 桑德拉

1 个答案:

答案 0 :(得分:0)

最后,我找到了问题并解决了这个问题,并且如果其他人遇到类似的问题,我认为我会提出这个问题。

我们克隆了强名称密钥所在的构建服务器。他们被克隆后所有的密钥和点击一次应用程序破了。无论我们做了什么,我们都无法删除旧密钥并重新安装它们。

从头开始构建新的构建服务器并在新服务器上手动安装PFX密钥后,一切都恢复了。

因此,克隆服务器无法正确克隆pfx密钥。