3

我们刚刚将一个 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(解决方案是从命令行编译),但如果可能的话,我想避免,因为所有权限都是针对服务帐户配置的,并且更愿意作为服务运行。

4

1 回答 1

2

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

  1. 为 CruiseControl.NET 服务创建了一个用户。
  2. 授予用户作为服务登录的权限,并将 CruiseControl.NET 服务更改为以该用户身份运行。
  3. 以该用户身份登录并从命令行运行 XBAP 项目。
  4. ResoveKeySource 任务提示时输入 PFX 密码。
  5. 从 CruiseControl.NET 测试的建筑,绿灯,万岁!

有趣的是,作为第 3 步的一部分。以该用户身份登录后,我将 PFX 文件导入其证书存储区,然后从命令行运行 MSBuild。这并没有解决问题,我必须从命令行构建项目,输入密码,然后从 CruiseControl.NET 服务中运行。

谢谢普里特!

于 2009-10-20T02:45:32.900 回答