デプロイ先のボックスにエージェントをインストールする必要があります。また、XAML テンプレートを終了できるようにする必要があります (おそらく、ビルドを実行する既存のテンプレートをコピーし、その末尾に停止/コピー/開始の要素を追加するだけです)。
CI のビルド後、それ (XAML テンプレート) を編集して、「プロセスの呼び出し」アクティビティを使用できるサービスを開始および停止する必要があります (おそらく、それを汎用にしてサービスに渡すなどの操作を行う必要があります)。 name を引数として - メタデータ引数の表示名などを変更して、ビルド定義で意味のあるものにできることに注意してください)。
物をコピーする限り、ドロップ場所などのプロパティにアクセスすることで、これをかなり簡単に行うことができます。
テンプレートの変更に頭が回ったら、かなり簡単です。
編集:
すぐに返信できなくて申し訳ありません。以前のコメントを修正する必要があります。これは、あなたが何を望んでいるかを本当に理解していない限り、見た目ほど簡単ではありません。私はこれについて考えていて、猫の皮を剥ぐのが好きです。これを達成する方法...私はこれを数回書き直したので、編集が意味をなすことを願っています:)
要約すると、次のようになります。
1) 実際の CI を実行するマシンである可能性は低いため、これを実行するビルド エージェント/マシンをテンプレートに渡します (これは単純な文字列として、または AgentReservationSpec として行うことができます - あなた次第です)。上に築きます。前述のように、これは XAML の Arguments セクションで行われます。表示名/説明を編集する場合は、Metadata Argument を編集できます。もちろん、このマシンには TFS エージェントがインストールされている必要があります。
2) リモート マシンでタスクを実行します。これは、Agent Scope アクティビティをテンプレートに追加することによって行われます。ステップ 1 の情報を使用して ReservationSpec を取得する必要があります (引数を AgentReservationSpec として追加すると簡単になります)。または、テンプレートでこれを解決する必要があります)
2.1) 停止/アンインストールを実行します。これは、(実際には 2 つの) Invoke Process アクティビティをドロップすることによって行われます。Invoke Process は引数を取ることができ、実行中の実行可能ファイルを指す必要があるため、これを使用する必要があります。 、1 つは NET コマンド (つまり NET STOP ) 用、もう 1 つは InstallUtil.exe 用です。
2.2) CI からリモート サーバーにファイルをコピーします。これには、ディレクトリのコピー アクティビティを使用できます。いくつかのパラメータが必要です。主なものはソースの場所です。GetBuildDetail アクティビティにドロップできるはずです。それは名前であり、.DropLocation を参照してこれを取得します。宛先は、インストール先の任意の場所です。
2.3) 新しいサービスをステップ 2.1 としてインストールします。Invoke Process を使用してサービスをインストールする必要があります。その後、別のサービスを使用してサービスを開始できます。
すべてを網羅しているわけではありませんが、これを自分で設定したわけではないので、いくつかの落とし穴や考えていないことがあると確信しています。私の頭のてっぺんからこれは理にかなっていますが、もっとよく知っている人がそれにいくつかの穴をあけることができるかもしれません:)