自分で機能拡張できるのもTFSのいいところということで、カスタムアクティビティを作成してみます。
主要なところ(というか、ほぼ^ ^;)は、「C#.NETでいく? TFS2010ビルド テンプレートのカスタマイズ(1)」以降と「Ewald Hofman Customize Team Build 2010 – Part 1: Introduction」以降を参考にさせて頂きました。
VSで新規プロジェクトを作成します。テンプレートから「アクティビティ ライブラリ」を選択します。
プロジェクト作成後、TFSのライブラリ(Microsoft.TeamFoundation.Build.Client)を追加します。
次に、プロジェクトにWorkflowテンプレートからコードアクティビティのクラスを追加します。
詳細は割愛させて頂いて、以下のようなソースに変更します。
変更概要としては
・Microsoft.TeamFoundation.Build.Clientを参照追加
・クラス属性として「[BuildActivity(HostEnvironmentOption.All)]」を追加
→これを指定しないと実行時にエラーになります
・ワークフローで指定してもらうプロパティを追加する
最初の「BuildDetail」は、ビルド結果が格納されているオブジェクトになります
・BuildDetailに対して、リンク形式の出力結果を追加する
AddExternalLinkについての詳細はこちら
という感じです。
一旦ビルドを実行し、エラーがなければワークフローにおいてみます。
プロジェクトにある「Activity1.xaml」を開き、ツールボックスの「CustomActivities」タブに「WriteExternalLink」があるはずです。これをワークフローエディタにドロップし、プロパティで3つの引数が指定できる状態であればOKです。
次は、作成したアクティビティを展開する方法についてです。