C# で、すでに実行中の cctray プロセスからビルド イベントをリッスンする方法を知っている人はいますか?
-
21-08-2019 - |
質問
C# アプリケーションを作成しましたが、cctray (クルーズ コントロール トレイ) のビルド イベントを利用できるかどうかを考えています。車輪の再発明はしたくありません。カスタム C# アプリケーションが特定の一連のルーチンを実行できるように、ビルドが (クライアント マシン上で) いつ失敗するか成功するかを知りたいだけです。
解決
あなたはrefrenceとしてCruiseControlのリモートライブラリを追加し、CruiseManagerFactoryのインスタンスを作成し、このラインはあなたのすべてのプロジェクトのステータスを取得しますことができます。 ServerUriは、TCPの形式の文字列です://サーバー名:ポート/ CruiseManager.rem
ProjectStatus[] currentStatuses = managerFactory.GetCruiseManager(ServerUri).GetProjectStatus();
この例では、私は明らかにCruiseManagerFactory managerFactoryの私のインスタンスの名前。 ProjectStatusの配列は、ServerUriのアドレスのすべてのプロジェクトの現在のステータスを持っています。
他のヒント
ビルドツールを使用してそれを行うことができない理由はありますか?
例えばで ナント, を使用すると、ビルドが失敗または成功したときに実行するターゲットを指定できます。 nant.onfailure プロパティと nant.onsuccess プロパティ. 。ビルド ターゲットでは、タスクの実行を通じて C# アプリケーションを呼び出すことができます。
クルーズコントロールには onSuccess および onFailure パブリッシャー...しかし、不思議なことにCruiseControl.netではそれらを見つけることができません。