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 の一部です。このユーザーとしてログオンした後、コマンド ラインから MSBuild を実行する前に、PFX ファイルを証明書ストアにインポートしました。これで問題は解決しませんでした。コマンド ラインからプロジェクトをビルドし、パスワードを入力してから、CruiseControl.NET サービスから動作させる必要がありました。

ありがとうプリート!

于 2009-10-20T02:45:32.900 に答える