chi*_*oro 10 msbuild clickonce hudson code-signing jenkins
我正在尝试在Windows Server计算机上构建ClickOnce Windows窗体项目(.NET 3.5/Visual Studio 2010).(努力使用Hudson CI自动化构建过程.)
为了签署ClickOnce清单,我在Visual Studio中创建了一个临时密钥temp.pfx
.我可以在我的工作站上从Visual Studio成功构建和部署项目.但是当在服务器上运行MSBuild时,我收到以下错误消息:
C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(1970,9):错误MSB3326:无法导入以下密钥文件:.密钥文件可能受密码保护.要更正此问题,请尝试再次导入证书或手动将证书导入当前用户的个人证书存储区.[C:.hudson \职位[...]的csproj]
C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(1970,9):错误MSB3321:导入密钥文件"temp.pfx"已取消.[C:.hudson \职位[...]的csproj]
我没有运气就尝试了以下所有问题和答案:
Stack Overflow问题无法导入密钥文件'blah.pfx' - 错误'密钥文件可能受密码保护'
=>就我而言,错误消息并不表示证书存储的名称,而是表示"当前用户的个人证书存储".
=>即使以"个人"作为容器名称(sn -i temp.pfx personal
)尝试接受的答案,它也无法解析密钥:
无法解析ALiS_TemporaryKey.pfx中的PKCS#12 blob - 发生内部错误.
Stack Overflow问题使用MSBuild对ClickOnce或程序集进行签名导致错误MSB3321
=>我尝试了接受的答案,但无法导入密钥文件,因为"无法访问用户配置文件,或者您导入的私钥可能需要未安装在系统上的加密服务提供程序"
=>如果我尝试通过在Windows资源管理器中双击导入文件(RobinDotNet的建议),也会发生同样的情况
Stack Overflow问题在MSBuild,Team Build和TFS中使用PFX文件签署程序集
=>这个问题的OP也没有成功解决上述两个问题,但遗憾的是,他得到的答案甚至都没有帮助我:
以在构建计算机上运行MSBuild的用户身份登录,手动调用MSBuild,然后在出现提示时键入密码.
=>我登录并运行msbuild myproject.sln
但它甚至不会提示我输入密码.
最终为我修复的是制作TFS Build服务在本地计算机上运行管理员的帐户.
=>运行Hudson(更准确地说:Tomcat)的帐户已经是本地管理员.我试图从"以管理员身份运行"命令行运行MSBuild,并且仍然会收到相同的错误消息.
更新:我尝试在同一台服务器上的Visual Studio中打开解决方案并构建它.我犯了同样的错误.当我尝试在项目属性的"签名"选项卡中重新导入PFX文件时,它会告诉我"密码无效".如果我尝试在我的工作站上的Visual Studio中的同一个解决方案中导入相同的文件并提供相同的密码,则会被接受.
更新2:如果我使用Visual Studio 2008生成的旧临时密钥,可以将其成功导入到我们服务器的证书库中; 我无法导入我使用Visual Studio 2010新创建的任何临时密钥.
更新3:我能够在服务器上的Visual Studio中创建一个新的"临时密钥",并在服务器和工作站上使用它来签署ClickOnce清单.我只是无法对它做出合理的解释 - 两台计算机都是64位,我在两者上都使用Visual Studio 2010.两者都安装了v3.5和v4(4.0.30319).NET框架.我的工作站是Windows 7专业版,服务器是Windows Server 2008 R2标准版.
将PFX文件复制到正在进行构建的计算机上.双击它,并将其安装在计算机上的证书管理器中.确保您已登录用于执行构建的帐户.
其他建议/问题:您是否在计算机上安装了正确版本的.NET?您是否有权写入该计算机上的证书存储区?
如果打开Visual Studio项目,请转到项目属性并尝试创建新证书,它是否有效?它应该创建一个PFX文件并将其添加到项目中.你能在证书库中看到它(菜单Start/certmgr.msc)吗?
归档时间: |
|
查看次数: |
9783 次 |
最近记录: |