尽管导入了证书,但由于MSBuild ResolveKeySource错误,CruiseControl.NET服务无法构建

时间:2009-10-19 06:38:42

标签: msbuild cruisecontrol.net xbap pfx

我们刚刚在构建服务器上添加了一个XBAP / WBA项目。它使用PFX文件进行签名。我将PFX文件导入CruiseControl.NET服务证书存储区,并可以在证书存储区中查看该服务。然而,我们仍然看到ResoveKeySource引发的异常:

  

c:\ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.Common.targets(1805,7):errorMSB4018:“ResolveKeySource”任务意外失败。 System.InvalidOperationException:当应用程序未在UserInteractive模式下运行时显示模式对话框或窗体不是有效操作。指定ServiceNotification或DefaultDesktopOnly样式以显示来自服务应用程序的通知。在System.Windows.Forms.Form.ShowDialog(IWin32Window所有者)

我还启用了(希望不仅仅是知识)与桌面交互的服务。

有没有人看过这种行为或推荐其他方法?我知道我可以作为用户运行CruiseControl.NET(解决方案是从命令行编译),但是如果可能的话,我希望避免因为所有权限都是针对服务帐户配置的,并且更愿意作为服务运行。

1 个答案:

答案 0 :(得分:2)

感谢Preet的建议,我能够使用以下过程让它工作:

  1. 为CruiseControl.NET服务创建了一个用户。
  2. 以用户身份登录服务权限,并将CruiseControl.NET服务更改为以此用户身份运行。
  3. 以此用户身份登录并从命令行运行XBAP项目。
  4. 在ResoveKeySource任务提示时输入PFX密码。
  5. 来自CruiseControl.NET的测试建筑,绿灯,horray!
  6. 有趣的是,作为第3步的一部分。以此用户身份登录后,我在从命令行运行MSBuild之前将PFX文件导入其证书存储区。这个没有解决问题,我不得不从命令行构建项目,输入密码然后它从CruiseControl.NET服务工作。

    谢谢Preet!