向服务器上的所有用户添加强命名密钥 (pfx)
Add strongly named keys (pfx) to all users on a server
我正在尝试配置一个 jenkins windows 从属 msbuild 任务,但我遇到了单击一次项目及其强命名键的问题。
根据哪个帐户安装 PFX 密钥,这取决于结果和错误是什么。
背景:
项目(ProjectX 和 ProjectY)
- .net 4
- ClickOnce 应用
- 使用 pfx 密钥 "ABC.pfx" 对程序集进行签名
詹金斯Windows 奴隶:
- 用户帐号"jenkins@work.com"
下的Jenkins windows服务运行s
- 随着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" "/verbosity:normal" /p:configuration="release" /p:outdir="c:/jenkins/workspace/project-x/output/ProjectX/" "/target:Clean;Build" /最大 cpu 数
"C:/Windows/Microsoft.NET/Framework/v4.0.30319/MSBuild.exe" "c:/jenkins/workspace/project-x/ProjectX/ProjectX.sln" "/verbosity:normal" /p:configuration="release" /p:outdir="c:/jenkins/workspace/project-x/output/ProjectX/" "/target:Publish" /maxcpucount
两个 msbuid 命令运行对我来说很好
在Jenkins账号下运行时报错:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2482,5):错误 MSB3326:无法导入以下密钥文件:ABC.pfx。密钥文件可能受密码保护。要更正此问题,请尝试再次导入证书或将证书手动导入到当前用户的个人证书存储中。 [c:\jenkins\workspace\project-x\ProjectX\ProjectX.csproj]
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2482,5): 错误 MSB3321: 导入密钥文件 "ABC.pfx" 是取消。 [c:\jenkins\workspace\project-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" "/verbosity:normal" /p:configuration="release" /p:outdir="c:/jenkins/workspace/project-x/output/ProjectX/" "/target:Clean;Build" /最大 CPU 计数
Jenkins 用户账户报错:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2482,5):错误 MSB3326:无法导入以下密钥文件:ABC.pfx。密钥文件可能受密码保护。要更正此问题,请尝试再次导入证书或将证书手动导入到当前用户的个人证书存储中。 [c:\jenkins\workspace\project-x\ProjectX\ProjectX.csproj]
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2482,5):错误 MSB3321:导入密钥文件 "ABC.pfx" 已取消。 [c:\jenkins\workspace\project-x\ProjectX\ProjectX.csproj]
我也遇到构建错误
有谁知道如何让 Jenkins 用户帐户确认 PFX 密钥?
感谢您的帮助,
桑德拉
最后我找到了问题和解决方案,并且认为如果其他人遇到类似问题我会提出来。
我们克隆了强命名密钥所在的构建服务器。克隆所有密钥后,Click Once 应用程序坏了。无论我们做什么,我们都无法删除旧密钥并重新安装它们。
从头开始构建新的构建服务器并在新服务器上手动安装 PFX 密钥后,一切又恢复正常了。
因此出于某种原因,克隆服务器无法正确克隆 pfx 密钥。
我正在尝试配置一个 jenkins windows 从属 msbuild 任务,但我遇到了单击一次项目及其强命名键的问题。
根据哪个帐户安装 PFX 密钥,这取决于结果和错误是什么。
背景:
项目(ProjectX 和 ProjectY)
- .net 4
- ClickOnce 应用
- 使用 pfx 密钥 "ABC.pfx" 对程序集进行签名
詹金斯Windows 奴隶:
- 用户帐号"jenkins@work.com" 下的Jenkins windows服务运行s
- 随着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" "/verbosity:normal" /p:configuration="release" /p:outdir="c:/jenkins/workspace/project-x/output/ProjectX/" "/target:Clean;Build" /最大 cpu 数
"C:/Windows/Microsoft.NET/Framework/v4.0.30319/MSBuild.exe" "c:/jenkins/workspace/project-x/ProjectX/ProjectX.sln" "/verbosity:normal" /p:configuration="release" /p:outdir="c:/jenkins/workspace/project-x/output/ProjectX/" "/target:Publish" /maxcpucount
两个 msbuid 命令运行对我来说很好
在Jenkins账号下运行时报错:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2482,5):错误 MSB3326:无法导入以下密钥文件:ABC.pfx。密钥文件可能受密码保护。要更正此问题,请尝试再次导入证书或将证书手动导入到当前用户的个人证书存储中。 [c:\jenkins\workspace\project-x\ProjectX\ProjectX.csproj]
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2482,5): 错误 MSB3321: 导入密钥文件 "ABC.pfx" 是取消。 [c:\jenkins\workspace\project-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" "/verbosity:normal" /p:configuration="release" /p:outdir="c:/jenkins/workspace/project-x/output/ProjectX/" "/target:Clean;Build" /最大 CPU 计数
Jenkins 用户账户报错:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2482,5):错误 MSB3326:无法导入以下密钥文件:ABC.pfx。密钥文件可能受密码保护。要更正此问题,请尝试再次导入证书或将证书手动导入到当前用户的个人证书存储中。 [c:\jenkins\workspace\project-x\ProjectX\ProjectX.csproj] C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2482,5):错误 MSB3321:导入密钥文件 "ABC.pfx" 已取消。 [c:\jenkins\workspace\project-x\ProjectX\ProjectX.csproj]
我也遇到构建错误
有谁知道如何让 Jenkins 用户帐户确认 PFX 密钥?
感谢您的帮助, 桑德拉
最后我找到了问题和解决方案,并且认为如果其他人遇到类似问题我会提出来。
我们克隆了强命名密钥所在的构建服务器。克隆所有密钥后,Click Once 应用程序坏了。无论我们做什么,我们都无法删除旧密钥并重新安装它们。
从头开始构建新的构建服务器并在新服务器上手动安装 PFX 密钥后,一切又恢复正常了。
因此出于某种原因,克隆服务器无法正确克隆 pfx 密钥。