Team Foundation ビルド アクティビティ

Team Foundation ビルド アクティビティは、Team Foundation ビルド システムでビルド処理の基本となるコンポーネントです。 これらのアクティビティを使用すると、次に示すカスタム ロジックや特殊なタスクの実行など、チームの要件を満たすカスタム ビルド処理を作成できます。

ほとんどの場合、カスタム ビルド プロセス テンプレートを作成する最良の方法は、既定のテンプレート (DefaultTemplate.xaml) をベースにする方法です。 この方法では、要件に合わせて特定の部分をカスタマイズしながら、既に作成された広く役に立つ機能を活用できます。 この方法のもう 1 つのメリットとして、このトピックで説明するアクティビティの使用方法の具体的で実践的な例を確認することもできます。 ビルド プロセス テンプレートを作成する方法については、「カスタム ビルド プロセス テンプレートの作成と使用」を参照してください。

重要

カスタム ビルド処理は、特殊な要件を満たす必要がある場合にのみ作成してください。 DefaultTemplate.xaml を使用すると、一般的な多くの要件を満たすビルド処理をすばやく定義できます。 詳細については、「既定のテンプレートを使用してビルドを定義する」を参照してください。

このトピックの内容

  • 必要なアクセス許可

  • アクティビティの目的別リファレンス

  • アクティビティのアルファベット順リファレンス

必要なアクセス許可

Team Foundation ビルド アクティビティを使用する手順を実行するには、次のアクセス許可を [許可] に設定する必要があります。

  • ビルド定義の編集

  • 関連するバージョン コントロール ディレクトリ (チーム プロジェクトの BuildProcessTemplates サブディレクトリなど) のチェックアウトおよびチェックイン

  • ビルドをキューに挿入

詳細については、「Team Foundation Server のアクセス許可」を参照してください。

アクティビティの目的別リファレンス

  • 基本的なタスクを実行する

    • 環境変数の値を取得する

    • ワークスペース内のファイルのパスを取得する

    • ディレクトリを操作する

    • ビルド エージェントの作業ディレクトリのパスを取得する

    • ワークスペースにないファイルをダウンロードする

    • ファイルを検索する

    • ビルド ログに警告、エラー、メッセージ、およびその他のデータを書き込む

    • データ ウェアハウスにビルド メタデータを書き込む

  • ビルド処理を制御する

    • ビルド エージェントでアクティビティを実行する

    • 名前付きミューテックス構造を使用して、スレッド セーフなプロセスを実装する

    • 理由 (トリガー) に基づいてビルド処理のセクションを制限する

  • コンパイル、テスト、およびその他のタスクを実行する

    • MSBuild を使用してバイナリをコンパイルし、コード分析を実行して、その他のタスクを実行する

    • MSTest を使用してテストを実行する

    • ビルドが影響を与えるテストのリストを取得する

    • プロセスを開始する

  • バージョン コントロールを操作する

    • 変更セットと作業項目をビルドに関連付ける

    • ゲート変更をチェックインする

    • チェックイン ポリシーを評価する

    • バージョン コントロールのファイルにラベルを付ける

  • 作業項目を操作する

    • 変更セットと作業項目をビルドに関連付ける

    • 作業項目の作成

  • シンボル データを操作する

    • バージョン コントロールのパスとバージョンを .pdb ファイルのシンボル データに埋め込む

    • シンボルを SymStore シンボル ストアに発行する

  • 有用なオブジェクトへの参照を取得する

    • チーム プロジェクト コレクションのオブジェクトへの参照を取得する

    • ビルド エージェントのオブジェクトへの参照を取得する

    • ビルドの詳細のオブジェクトへの参照を取得する

    • ビルド環境のオブジェクトへの参照を取得する

アクティビティのアルファベット順リファレンス

  • AgentScope

  • AssociateChangesetsAndWorkItems

  • CheckInGatedChanges

  • ConvertWorkspaceItem

  • ConvertWorkspaceItems

  • CopyDirectory

  • CreateDirectory

  • CreateWorkspace

  • DeleteDirectory

  • DeleteWorkspace

  • DownloadFile

  • DownloadFiles

  • EvaluateCheckInPolicies

  • ExpandEnvironmentVariables

  • FindMatchingFiles

  • GetBuildAgent

  • GetBuildDetail

  • GetBuildDirectory

  • GetBuildEnvironment

  • GetImpactedTests

  • GetTeamProjectCollection

  • GetWorkspace

  • IndexSources

  • InvokeForReason

  • InvokeProcess

  • LabelSources

  • LabelWorkspace

  • MSBuild

  • MSTest

  • OpenWorkItem

  • PublishSymbols

  • RevertWorkspace

  • SetBuildProperties

  • SharedResourceScope

  • SyncWorkspace

  • TfsBuild

  • UpdateBuildNumber

  • WriteBuildError

  • WriteBuildInformation<T>

  • WriteBuildMessage

  • WriteBuildWarning

基本的なタスクを実行する

Team Foundation ビルドのアクティビティを使用すると、次のタスクを実行できます。

  • 環境変数の値を取得する

  • ワークスペース内のファイルのパスを取得する

  • ディレクトリを操作する

  • ビルド エージェントの作業ディレクトリのパスを取得する

  • ワークスペースにないファイルをダウンロードする

  • ファイルを検索する

  • ビルド ログに警告、エラー、メッセージ、およびその他のデータを書き込む

  • ビルドに関するメタデータを書き込む

環境変数の値を取得する (ExpandEnvironmentVariables アクティビティ)

ビルド サーバー上の 1 つ以上の環境変数を解決するには、ExpandEnvironmentVariables アクティビティを使用します。 このアクティビティが AgentScope シーケンス内にある場合、環境変数はビルド エージェントで読み取られます。それ以外の場合は、ビルド コントローラーで読み取られます。

ExpandEnvironmentVariables の Result (String) プロパティ

操作の結果を返します。 たとえば、The temp directory on machine BLDSERV3 is C:\windows\SERVIC~2\NETWOR~1\AppData\Local\Temp. のようになります。

ExpandEnvironmentVariables の引数プロパティ

  • Input (String): 解決する環境変数が含まれる文字列を指定する必要があります。 各環境変数は、Windows のパーセント記号表記を使用するのではなく、MSBuild プロパティを指定する形式で記述する必要があります。 たとえば、"The temporary directory on machine $(COMPUTERNAME) is $(TEMP)." のように指定します。

  • AdditionalVariables (IDictionary<TKey, TValue><String,String>): 対応する値に解決する追加の変数が (キーとして) 含まれている IDictionary オブジェクトを指定できます。

ページのトップへ

ワークスペース内のファイルのパスを取得する

各ビルドには、ビルド定義の [ワークスペース] タブで定義されたバージョン コントロール ワークスペースがあります。 このワークスペースは、ソース コード ファイルやその他のファイルなど、バージョン コントロール システムから取得する必要のあるすべてのファイルへのアクセスをビルドに提供します。 Team Foundation ビルドには、ビルド ワークスペースにあるファイルの操作に使用できる 2 つのアクティビティ (ConvertWorkspaceItem と ConvertWorkspaceItems) が用意されています。

ビルド ワークスペースの詳細については、「基本的なビルド定義の作成」を参照してください。

ヒント

一般的なシナリオで ConvertWorkspaceItem アクティビティを使用する詳細な手順については、「ビルド システムによってバイナリが配置される場所の制御」を参照してください。

ワークスペース内のファイルのパスを取得する (ConvertWorkspaceItem アクティビティ)

サーバー パスをビルド エージェントのローカル パスに変換したり、ビルド エージェントのローカル パスをサーバー パスに変換したりするには、ConvertWorkspaceItem アクティビティを使用します。

ConvertWorkspaceItem の Result (String) プロパティ

変換されたパスを返します。

ConvertWorkspaceItem の引数プロパティ

  • Input (String): 変換するパスの値を指定する必要があります。

  • Workspace (Workspace): ファイルが含まれている Workspace への参照を指定する必要があります。 ほとんどの場合、このプロパティは、CreateWorkspace アクティビティの Result プロパティで初期化される変数に設定する必要があります。 DefaultTemplate.xaml に基づくビルド処理を作成している場合、通常は Workspace 変数を使用します。

  • Direction

    • サーバー パスをローカル パスに変換する: Direction プロパティで ServerToLocal を選択し、Input (String) プロパティでサーバー上のファイルのパスを指定します。

      たとえば、チームの共通ユーティリティを格納するディレクトリが $/OurTeam/BuildProcess/Util であるとします。 バイナリをコンパイルした後、ScanBinaries.exe ユーティリティを実行するカスタム ビルド処理を作成できます。 ビルド定義の [ワークスペース] タブで $/OurTeam/BuildProcess/Util がマップされていれば、Input プロパティに $/OurTeam/BuildProcess/Util/ScanBinaries.exe を指定することで、Result (String) プロパティからユーティリティのローカル パスを取得できます。

    • ローカル パスをサーバー パスに変換する: Direction プロパティで ServerToLocal を選択し、Input プロパティでビルド エージェント上のファイルのローカル パスを指定します。

ワークスペース内のファイルのパスを取得する (ConvertWorkspaceItems アクティビティ)

サーバー パスをビルド エージェントのローカル パスに変換したり、ビルド エージェントのローカル パスをサーバー パスに変換したりするには、ConvertWorkspaceItems アクティビティを使用します。

ConvertWorkspaceItems の Result (IList<String>) プロパティ

変換されたパスの値を返します。

ConvertWorkspaceItems の引数プロパティ

  • Input (IEnumerable<T><String>): 変換するパスの値を指定する必要があります。

  • Workspace (Workspace): ファイルが含まれている Workspace への参照を指定する必要があります。 ほとんどの場合、このプロパティは、CreateWorkspace アクティビティの Result プロパティで初期化される変数に設定する必要があります。

    ヒント

    DefaultTemplate.xaml に基づくビルド処理を作成している場合、通常は Workspace 変数を使用します。

  • Direction: 次のいずれかの値を選択します。

    • Input プロパティにサーバー パスの値のコレクションを指定し、Result プロパティがローカル パスの値のリストを返すようにする場合は、ServerToLocal を選択します。

    • Input プロパティにローカル パスの値のコレクションを指定し、Result プロパティがサーバー パスの値のリストを返すようにする場合は、LocalToServer を選択します。

ディレクトリを操作する

Team Foundation ビルドで複数のアクティビティを使用することで、ディレクトリを操作できます。

ヒント

ビルドのバージョン コントロール ワークスペースの一部であるディレクトリを操作する必要がある場合は、代わりにワークスペース アクティビティを使用してください。 詳細については、「ワークスペース内のファイルのパスを取得する」を参照してください。

ディレクトリを作成する (CreateDirectory アクティビティ)

ディレクトリを作成するには、CreateDirectory アクティビティを使用します。ディレクトリの名前は、Directory (String) プロパティで指定します。

ディレクトリをコピーする (CopyDirectory アクティビティ)

あるディレクトリから別のディレクトリにすべての内容を再帰的にコピーするには、CopyDirectory アクティビティを使用します。コピー元のディレクトリは Source (String) プロパティで指定し、コピー先のディレクトリは Destination (String) プロパティで指定します。 Destination プロパティで指定したディレクトリが既に存在している必要があります。 空のディレクトリまたはサブディレクトリはコピーされません。

ディレクトリを削除する (DeleteDirectory アクティビティ)

ディレクトリを削除するには、DeleteDirectory アクティビティを使用します。ディレクトリの名前は、Directory (String) プロパティで指定します。 削除するディレクトリにサブディレクトリが含まれている場合は、Recursive (Boolean) プロパティを True に設定する必要があります。設定しないと、ビルドに失敗します。

ビルド エージェントの作業ディレクトリのパスを取得する (GetBuildDirectory アクティビティ)

ビルド エージェントの作業ディレクトリのリテラル パスを取得するには、GetBuildDirectory アクティビティを使用します。パスは Result (String) プロパティから取得できます。 このアクティビティは、AgentScope アクティビティ内でのみ使用できます。

ページのトップへ

ワークスペースにないファイルをダウンロードする

1 つ以上のファイルをダウンロードするには、DownloadFiles アクティビティを使用します。 DownloadFile アクティビティは無視してください。

DownloadFiles アクティビティ

バージョン コントロールから 1 つ以上のファイルをダウンロードするには、DownloadFiles アクティビティを使用します。

ヒント

ダウンロードするファイルがビルド ワークスペースにある場合は、ConvertWorkspaceItem アクティビティを使用してそれらのファイルにアクセスする必要があります。

DownloadFiles の引数プロパティ

  • LocalPath (String) 次のように値を指定する必要があります。

    • 1 つのファイルをダウンロードする場合は、ローカル パスと、ダウンロードするファイルのローカル コピーに付ける名前を指定します。たとえば、"c:\Docs\readme.txt" と指定します。

    • 複数のファイルをダウンロードする場合は、ファイルのダウンロード先となるディレクトリのローカル パスを指定します。たとえば、"c:\Docs\" と指定します。

  • ServerPath (String) 次のように値を指定する必要があります。

    • 1 つのファイルをダウンロードする場合は、サーバー パスと、ダウンロードするファイルの名前を指定します。たとえば、"$/Docs/readme.txt" と指定します。

    • 複数のファイルをダウンロードする場合は、ダウンロードするファイルが存在するディレクトリのサーバー パスを指定します。たとえば、"$/Docs/" と指定します。

  • Recursion (RecursionType):

    • OneLevel: ServerPath プロパティで指定したディレクトリのファイルをダウンロードします。

    • Full: ServerPath プロパティで指定したディレクトリのファイルと、すべてのサブディレクトリにあるすべてのファイルをダウンロードします。

  • Version (String): バージョン指定を行うことができます。 現在のバージョンをダウンロードするには、このプロパティを Microsoft.TeamFoundation.VersionControl.Client.VersionSpec.Latest.DisplayString のままにします。 バージョン指定の詳細については、「コマンド ライン構文 (バージョン管理)」を参照してください。

  • DeletionID (Int32): このプロパティは、バージョン コントロールから削除されたファイルをダウンロードする場合のみ指定する必要があります。 コマンド プロンプトで tf dir /deleted と入力することにより、この値を対話形式で取得できます (詳細については、「Dir コマンド」を参照してください)。 ただし、Team Foundation ビルドには DeletionID を取得するための組み込みアクティビティが用意されていません。 このプロパティを使用するには、この機能を提供するカスタム アクティビティを入手または作成する必要があります。

ページのトップへ

DownloadFile アクティビティ

DownloadFile アクティビティは無視してください。 DownloadFiles アクティビティが、1 つ以上のファイルをダウンロードする最も簡単な方法です。

ファイルを検索する (FindMatchingFiles アクティビティ)

ファイルを検索するには、FindMatchingFiles アクティビティを使用します。 MatchPattern (String) プロパティで検索条件を指定します。 このプロパティでは、次の要素を含む引数を指定できます。

  • Directory の GetFiles(String, String) メソッドの searchPattern 引数でサポートされる構文。

  • 再帰的な検索を指定する **。 以下に例を示します。

    • ソース ディレクトリからテキスト ファイルを検索するには、MatchPattern プロパティに、String.Format("{0}\**\*.txt", SourcesDirectory) のような値を指定します。

    • ソース ディレクトリから、txtfiles という名前の 1 つ以上のサブディレクトリにあるテキスト ファイルを検索するには、MatchPattern プロパティに String.Format("{0}\**\txtfiles\*.txt", SourcesDirectory) のような値を指定します。

Result (IEnumerable<T><String>) プロパティで、演算の結果を収集します。

ビルド ログに警告、エラー、メッセージ、およびその他のデータを書き込む

WriteBuildMessage アクティビティ

ビルド ログに情報メッセージを書き込むには、WriteBuildMessage アクティビティを使用します。 Message (String) プロパティでメッセージを指定する必要があります。 Importance プロパティ (BuildMessageImportance) の値を変更することで、メッセージの重要性を示すこともできます。

ヒント

  • ビルド処理のユーザーは、表示される内容とウェアハウスに格納されるデータの両方の点で情報の負担を軽減するため、詳細度のフィルター処理を使用する必要があります。 徹底的で一貫した方法を使用してビルド メッセージの Importance プロパティを設定すると、このフィルター処理を効率的に行うことができます。 詳細については、「ビルド情報の管理と詳細度の制御」を参照してください。

  • 既定の設定を使用した場合、メッセージはビルド ログに書き込まれません。 この問題を解決するには、次のいずれかの手順を実行します。

    • WriteBuildMessage Importance プロパティを Microsoft.TeamFoundation.Build.Client.BuildMessageImportance.High に設定します。

    • ビルド定義の [プロセス] タブで、[ログの詳細度] プロセス パラメーターを Detailed または Diagnostic に設定します。

WriteBuildWarning アクティビティ

ビルド ログに警告メッセージを書き込むには、WriteBuildWarning アクティビティを使用します。 警告は、ビルド結果ウィンドウに黄色の感嘆符付きで表示されます。 Message (String) プロパティでメッセージを指定する必要があります。

ビルドの警告は、チームが詳細度を "最小" 以上に設定したときにのみ記録されます。 詳細については、「ビルド情報の管理と詳細度の制御」を参照してください。

WriteBuildError アクティビティ

ビルド ログにエラー メッセージを書き込むには、WriteBuildError アクティビティを使用します。 エラーは、ビルド結果ウィンドウに赤色の感嘆符付きで表示されます。 エラーがビルド ログに書き込まれると、ビルドは最高でも Partially Succeeded に分類されます。 Message (String) プロパティでメッセージを指定する必要があります。

ビルド エラーは、詳細度の設定に関係なく常に記録されます。 詳細については、「ビルド情報の管理と詳細度の制御」を参照してください。

WriteBuildInformation<T> アクティビティ

オブジェクトをビルド ログに書き込むには、WriteBuildInformation<T> アクティビティを使用します。 ユーザーがビルド結果ウィンドウでログを表示すると、リフレクションを使用してオブジェクトがレンダリングされます。

WriteBuildInformation<T> の引数プロパティ

  • Value (Object): ビルド ログに書き込むオブジェクトを指定する必要があります。 オブジェクトがビルド結果ウィンドウにレンダリングされるようにするには、オブジェクトに IBuildInformationNode を実装し、Type を次のいずれかの InformationTypes 値に設定する必要があります。

    • ActivityProperties

    • ActivityTracking

    • AgentScopeActivityTracking

    • BuildError

    • BuildMessage

    • BuildProject

    • BuildStep

    • BuildWarning

    • ExternalLink

    • OpenedWorkItem

  • ParentToBuildDetail: False を指定すると、このオブジェクトの親をこのアクティビティの親にすることができます。True を指定すると、親を IBuildDetail オブジェクトにすることができます。

    このプロパティにより、情報がビルド結果ウィンドウにどのように表示されるかが決まります。 False を指定した場合、情報はインデントされ、WriteBuildInformation<T> アクティビティの前後にある、同じレベルの他のアクティビティの出力に合わせて整列されます。 True を指定した場合、情報はインデントされません。

ページのトップへ

データ ウェアハウスにメタデータを書き込む

ビルドに関するメタデータをデータ ウェアハウスに書き込むことができます。

  • ビルド番号を書き込む (UpdateBuildNumber アクティビティ)

  • ビルドに関する主要なデータ ポイントを書き込む (SetBuildProperties アクティビティ)

ヒント

書き込むメタデータがこれらのアクティビティによりサポートされていない場合、GetBuildDetail アクティビティを使用して IBuildDetail オブジェクトへの参照を取得し、その参照を使用することでオブジェクトにデータを直接割り当てることができます。

ビルド番号を書き込む (UpdateBuildNumber アクティビティ)

ビルドのビルド番号 (または名前) を設定するには、UpdateBuildNumber アクティビティを使用します。 このアクティビティは、次の手順を実行します。

  1. ビルド番号形式を決定する式に基づいてビルド番号を構築します。 ビルド処理は通常、ビルド定義の [プロセス] タブのパラメーターにより指定されたワークフロー引数からこの式を受け入れます。

  2. 結果値を BuildNumber プロパティに書き込むことで、ビルドのビルド番号 (または名前) を設定します。

UpdateBuildNumber の Result (String) プロパティ

Result: 新しい BuildNumber 値を返します。

UpdateBuildNumber のプロパティ

  • BuildNumberFormat (String): ビルド番号の形式を指定する式を指定する必要があります。 この式の構文については、「ビルド番号の使用」を参照してください。

ページのトップへ

ビルドに関する主要なデータ ポイントを書き込む (SetBuildProperties アクティビティ)

データ ウェアハウス内の各ビルドに関するデータの記憶域を管理する IBuildDetail オブジェクトに主要なデータ ポイントを書き込むには、SetBuildProperties を使用します。 このデータの多くは、ビルド結果ウィンドウに表示されます。

SetBuildProperties のプロパティ

  • PropertiesToSet: 設定するプロパティの名前のチェック ボックスをオンにする必要があります。

  • BuildNumber (String): ビルドの名前と見なされる、ビルドの BuildNumber を設定できます。

    ヒント

    ビルド定義の [プロセス] タブでユーザーが指定した設定に基づいてこの値を設定する場合は、通常、このプロパティの代わりに UpdateBuildNumber アクティビティを使用します。

  • CompilationStatus (BuildPhaseStatus): コンパイルのステータス (CompilationStatus) を設定できます (MSBuild アクティビティもこの値を自動的に設定します)。

  • DropLocation (String): DropLocation プロパティには、格納場所を記録できます。

    注意

    このプロパティを設定しても、実際には格納場所は作成されません。 このプロパティは、格納フォルダーの場所をデータ ウェアハウスに保存するために使用します。格納フォルダーは、通常、CreateDirectory アクティビティを使用して作成します。

  • KeepForever (Boolean): ビルド定義の [アイテム保持ポリシー] タブの設定をバイパスして、完了したビルドを無期限に保持する場合は、KeepForever プロパティを True に設定できます。

  • LabelName (String): LabelName プロパティを設定すると、このビルドのマークに使用したラベルを、バージョン コントロールのソース コード ファイルに記録できます。 通常、このプロパティは、LabelWorkspace アクティビティの Name プロパティの値に合わせて設定します。

    重要

    Team Foundation ビルドで変更セットと作業項目をビルドに関連付けるには、このデータが必要です。 このデータを指定しない場合、AssociateChangesetsAndWorkItems アクティビティは失敗します。

  • LogLocation (String): LogLocation プロパティを使用すると、ビルド処理でログ ファイルを配置するフォルダーの UNC ファイル パスを記録できます。

    注意

    多くの場合、カスタム ビルド処理でこのプロパティを使用する必要はありません。 このプロパティは、レガシ ビルド処理をサポートするため、主に UpgradeTemplate.xaml ファイルで使用されます。

  • Quality (String): ビルドの品質を Quality プロパティに記録できます。

  • SourceGetVersion (String): SourceGetVersion プロパティを使用して、ソースが取得されるこのビルドのバージョン仕様を記録できます。

  • Status (BuildStatus): ビルドの全体的な状態を Status プロパティに記録できます。 たとえば、このプロパティを使用すると、ビルドが成功したか失敗したかを示すことができます。

  • TestStatus (BuildPhaseStatus): TestStatus プロパティを使用して、このビルドで実行されたテストの全体的な状態を記録します。 たとえば、このプロパティを使用すると、このビルドで実行したテストが成功したか失敗したかを示すことができます。

ページのトップへ

ビルド処理を制御する

Team Foundation ビルド アクティビティを使用すると、次の方法でビルド処理を制御できます。

  • ビルド エージェントでアクティビティを実行する

  • 名前付きミューテックス構造を使用して、スレッド セーフなプロセスを実装する

  • 理由 (トリガー) に基づいてビルド処理のセクションを制限する

ビルド エージェントでアクティビティを実行する (AgentScope アクティビティ)

ビルド エージェントで実行するビルド処理の一部を囲むには、AgentScope アクティビティを使用します。

AgentScope の引数プロパティ

  • エージェントの選択

    • MaxWaitTime (TimeSpan): ビルド エージェントが使用可能になるまでビルド処理が待機する最大時間を指定できます。 値は hh:mm:ss の形式で入力できます。 たとえば、最大待機時間として 01:30:45 を指定し、1 時間 30 分 45 秒以内にビルドがビルド エージェントに割り当てられなかった場合、ビルドはタイムアウト エラーで失敗となります。 ビルド コントローラーがこのビルド定義を処理するビルド エージェントを検索する時間に制限を設けない場合は、00:00:00 を指定します。

      重要

      MaxWaitTime プロパティで 0 以外の適切な値を指定することで、ビルド キューをバックアップしなくてもよくなります。

    • ReservationSpec (AgentReservationSpec): このアクティビティに含まれるアクティビティを処理するビルド エージェントの種類を制限できます。 たとえば、AgentScope アクティビティ内のアクティビティの処理に、特定のタグが含まれるビルド エージェントのみ使用することを指定できます。

  • 実行

    • MaxExecutionTime (TimeSpan): この AgentScope アクティビティが完了するまでに許容される最大時間を指定できます。 値は hh:mm:ss の形式で入力できます。 たとえば、制限時間として 04:30:15 を指定し、ビルド エージェントの処理が 4 時間 30 分 15 秒後に完了しなかった場合、ビルドはタイムアウト エラーで失敗となります。 ビルド エージェントによるビルドの処理に制限時間を設定しない場合は、00:00:00 を指定します。

      ヒント

      MaxExecutionTime プロパティで 0 以外の適切な値を指定することで、ビルド キューをバックアップしなくてもよくなります。

  • スコープ

    • DataToIgnore: このプロパティは無視してください。

ページのトップへ

名前付きミューテックス構造を使用して、スレッド セーフなプロセスを実装する (SharedResourceScope アクティビティ)

名前付きミューテックス (相互排除) 構造を実装するには、SharedResourceScope アクティビティを使用します。 このアクティビティの内部に配置するビルド処理のセグメントは、"スレッド セーフ" になります。

このアクティビティは一般的に、一度に 1 つのプロセスのみがアクセスできる共有リソースにアクセスする必要があるビルド処理の一部を囲む場合に使用されます。 たとえば、ビルドをファイル共有上の 1 つのファイルに指定順で書き込むことができます。 この種類のプロセスが正しく機能するようにするには、SharedResourceScope アクティビティの内部に実装する必要があります。

DefaultTemplate.xaml にも別の例があり、次のように、SharedResourceScope アクティビティに PublishSymbols アクティビティの呼び出しが埋め込まれています。

  1. シーケンス (Sequence) >

  2. エージェントで実行 (AgentScope) >

  3. 変更セットと作業項目のコンパイル、テスト、および関連付けを試す (TryCatch [Try]) >

  4. シーケンス (Sequence) >

  5. 影響を受けたテストの取得、ソースのインデックス作成、およびシンボルの発行 (Parallel) >

  6. SourceAndSymbolServerSettings.IndexSources Or SourceAndSymbolServerSettings.HasSymbolStorePath の場合 (If [Then]) >

  7. 開始したビルドに対してソースのインデックスを作成し、シンボルを発行する (InvokeForReason) >

  8. SourceAndSymbolServerSettings.HasSymbolStorePath の場合 (If [Then]) >

  9. シンボルの発行の試行 (TryCatch [Try]) >

  10. シンボル ストアへのアクセスを同期する (SharedResourceScope) >

  11. シンボルの発行 (PublishSymbols)

この構造を移動する方法については、「複雑な Windows Workflow 内の移動」を参照してください。

SharedResourceScope の引数プロパティ

  • ResourceName (String): 値を指定する必要があります。 チーム プロジェクト コレクション内で同じ ResourceName 値を持つ SharedResourceScope アクティビティのインスタンスは、すべて (別のビルド定義テンプレートに含まれている場合でも) 一度に 1 つずつ実行されます。

  • MaxExecutionTime (TimeSpan): SharedResourceScope アクティビティが完了するまでに許容される最大時間を指定できます。 値は hh:mm:ss の形式で入力できます。 たとえば、制限時間として 04:30:15 を指定し、SharedResourceScope アクティビティが 4 時間 30 分 15 秒後に完了しなかった場合、ビルドはタイムアウト エラーで失敗となります。 SharedResourceScope アクティビティの処理に制限時間を設定しない場合は、値として 00:00:00 を指定します。

    ヒント

    MaxExecutionTime プロパティで 0 以外の適切な値を指定することで、ビルド キューをバックアップしなくてもよくなります。

  • MaxWaitTime (TimeSpan): ビルド処理が、SharedResourceScope アクティビティの処理をキューで待機する最大時間を指定できます。 値は hh:mm:ss の形式で入力できます。 たとえば、制限時間として 01:30:45 を指定し、SharedResourceScope アクティビティが 1 時間 30 分 45 秒後までに処理されなかった場合、ビルドはタイムアウト エラーで失敗となります。 ビルド処理のキューでの待機に制限時間を設定しない場合は、値として 00:00:00 を指定します。

    ヒント

    MaxWaitTime プロパティで 0 以外の適切な値を指定することで、ビルド キューをバックアップしなくてもよくなります。

ページのトップへ

理由 (トリガー) に基づいてビルド処理のセクションを制限する (InvokeForReason アクティビティ)

特定の理由で実行されたビルドでのみ実行するビルド処理のセグメントを囲むには、InvokeForReason アクティビティを使用します。 ビルドの理由は通常、ビルド定義の [トリガー] タブでユーザーが選択したトリガーにより設定されます。 Reason プロパティでは、許可する理由の値を 1 つ以上指定できます。 詳細については、「ビルド トリガーと理由の指定」を参照してください。

ページのトップへ

コンパイル、テスト、およびその他のタスクを実行する

Team Foundation ビルド アクティビティを使用すると、バイナリをコンパイルしたり、テストを実行したり、その他のタスクを実行したりすることができます。

  • MSBuild を使用してバイナリをコンパイルし、コード分析を実行して、その他のタスクを実行する

  • MSTest を使用してテストを実行する

  • ビルドが影響を与えるテストのリストを取得する

MSBuild を使用してバイナリをコンパイルし、コード分析を実行して、その他のタスクを実行する (MSBuild アクティビティ)

バイナリをコンパイルしたり、コード分析を実行したり、MSBuild に用意されたその他の機能を活用したりするには、MSBuild アクティビティを使用します。

MSBuild の結果

このアクティビティには、結果を返すプロパティがありません。 ただし、コンパイル エラーが記録された場合、このアクティビティは CompilationStatusFailed に設定します。

MSBuild の引数プロパティ

  • AdditionalVCOverrides (String): GenerateVsPropsFile を True に設定した場合、生成された .vsprops ファイルにこのプロパティの内容が埋め込まれます。

  • CommandLineArguments (String): MSBuild に渡すコマンド ライン引数を指定できます。

  • Configuration (String): ビルドする構成を指定できます。 たとえば、“debug” または “release” です。

  • GenerateVSPropsFile (Boolean): このプロパティが True に設定されている場合、MSBuild は標準の .vsprops ファイルを生成して C++ プロジェクトに渡します。 このファイルには、C++ プロジェクトの出力ディレクトリと、AdditionalVCOverrides プロパティで指定したすべての内容が含まれます。

  • LogFile (String): MSBuild が作成するログ ファイルの名前を指定できます。

  • LogFileDropLocation (String): MSBuild がログ ファイルを格納するディレクトリの完全修飾 UNC パスを指定できます。

  • MaxProcesses (Int32): MSBuild が作成するプロセスの最大数を指定できます。

  • OutDir (String): MSBuild がコンパイル済みバイナリを格納するディレクトリを指定できます。 詳細については、「ビルド システムによってバイナリが配置される場所の制御」を参照してください。

  • Platform (String): MSBuild がビルドするプラットフォームを指定できます。 たとえば、“Any CPU”、“x86”、または “x64” と指定できます。

  • Project (String): MSBuild がビルドするソリューションまたはコード プロジェクトを指定できます。

  • ResponseFile (String): MSBuild が使用する応答ファイルを指定できます。

  • RunCodeAnalysis (CodeAnalysisOption): コード分析を常に実行するか、一度も実行しないか、プロジェクトの設定に従って実行するかを指定できます。

  • Targets (IEnumerable<T><String>): ビルドするターゲットを指定できます。

  • TargetsNotLogged (IEnumerable<T><String>): ProjectStarted イベントを記録しないターゲットを指定できます。

  • ToolPath (String): ツールのパスを指定できます。

  • ToolPlatform (ToolPlatform): ツールのプラットフォームを指定できます。 現在のオペレーティング システムに基づいてプラットフォームを検出するには、Microsoft.TeamFoundation.Build.Workflow.Activities.ToolPlatform.Auto と指定します。

  • Verbosity (BuildVerbosity): MSBuild が生成するログの詳細度を指定できます。

MSBuild プロパティによって影響を受ける多数の MSBuild オプションの詳細については、「MSBuild コマンド ライン リファレンス」を参照してください。

ページのトップへ

テストを実行する (MSTest アクティビティ)

MSTest.exe を使用してテストを実行するには、このアクティビティを使用します。

MSTest のコア プロパティ

最初に、テストを実行する方法を決定し、次に該当するプロパティの値を指定します。

  • テスト コンテナーでテストを実行するには (推奨される方法)、次のプロパティを使用します。

    • TestContainers (IEnumerable<String>): 実行するテストのテスト コンテナーを指定する必要があります。 このプロパティは、MSTest.exe コマンドの /testcontainer オプションに相当します。 詳細については、「/testcontainer」を参照してください。

    • SearchPathRoot (String): テスト コンテナーとその依存関係を検索するディレクトリのパスのルートを指定できます。 値を指定しなかった場合、MSTest アクティビティは一般的な場所でファイルを検索しようとします。

    • TestSettings (String): 使用するテスト実行構成ファイルを指定できます。 このプロパティは、MSTest.exe コマンドの /testsettings オプションに相当します。 詳細については、「/testsettings」を参照してください。

  • テスト リストでテストを実行するには、次のプロパティを使用します。

    • TestLists (IEnumerable<String>): 実行するテスト リストを指定する必要があります。 このプロパティは、MSTest.exe コマンドの /testlist オプションに相当します。 詳細については、「/testlist」および「テスト リストの定義によるテストのグループ化」を参照してください。

    • TestMetadata (String): 実行するテスト リストが含まれるメタデータ ファイルを指定する必要があります。 このプロパティは、MSTest.exe コマンドの /testmetadata オプションに相当します。 詳細については、「/testmetadata」を参照してください。

MSTest のフィルター処理プロパティ

次のプロパティを使用すると、実行するテストをフィルター処理できます。

  • Category (String): テスト カテゴリに基づいてテストをフィルター処理できます。 このプロパティは、MSTest.exe コマンドの /category オプションに相当します。 詳細については、「/category」および「テスト カテゴリの定義によるテストのグループ化」を参照してください。

  • MaxPriority (Int32): 実行するテストの最も高い優先度を指定できます。 優先度がこの値以下のテストだけが実行されます。 MinPriority プロパティ以上の正の整数を指定するか、最も高い優先度を指定しない場合は -1 と指定します。

    ヒント

    テストに優先度を割り当てた場合、MinPriority プロパティと MaxPriority プロパティは徹底したテストと高速ビルドの間のバランスを定義するのに役立つ重要な手段となります。

  • MinPriority (Int32): 実行するテストの最も低い優先度を指定できます。 優先度がこの値以上のテストだけが実行されます。 MaxPriority プロパティ以下の正の整数を指定するか、最も低い優先度を指定しない場合は -1 と指定します。

  • TestNames (IEnumerable<String>): 実行するテストの名前を指定できます。 このプロパティは、MSTest.exe コマンドの /test オプションに相当します。 詳細については、「/test」を参照してください。

MSTest の発行プロパティ

次のプロパティを使用すると、テスト結果をデータ ウェアハウスに発行できます。

  • Publish (Boolean): テスト結果を発行する場合は、このプロパティを True に設定する必要があります。

  • Flavor (String): 結果を発行するテストを実行したビルドのフレーバーを指定できます。 このプロパティは、MSTest.exe コマンドの /flavor オプションに相当します。 詳細については、「テスト結果を発行するためのコマンド ライン オプション」を参照してください。

  • Platform (String): 結果を発行するテストを実行したビルドのプラットフォームを指定できます。 このプロパティは、MSTest.exe コマンドの /platform オプションに相当します。 詳細については、「テスト結果を発行するためのコマンド ライン オプション」を参照してください。

  • TestConfigId (Int32): 既存のテスト管理構成の ID を指定して、結果を発行するテスト実行に関連付けることができます。 このプロパティは、MSTest.exe コマンドの /testconfigid オプションに相当します。 詳細については、Visual Studio コマンド プロンプトで MSTest /? を実行します。

  • TestConfigName (String): 既存のテスト管理構成の名前を指定して、結果を発行するテスト実行に関連付けることができます。 このプロパティは、MSTest.exe コマンドの /testconfigname オプションに相当します。 詳細については、Visual Studio コマンド プロンプトで MSTest /? を実行します。

MSTest のその他のプロパティ

  • CommandLineArguments (String): 指定可能なその他のコマンド ライン オプションについては、「MSTest.exe コマンド ライン オプション」を参照してください。

  • PathToResultsFilesRoot (String): MSTest.exe が結果ファイル (.trx files) を配置するビルド エージェント上のディレクトリのパスのルートを指定できます。

  • ToolPath (String): 実行する MSTest.exe のバージョンが含まれるディレクトリのパスを指定できます。 パスを指定しない場合、Team Foundation ビルドにより、テスト リストまたはテスト コンテナー内のデータに基づいてパスが自動的に決定されます。

ページのトップへ

ビルドが影響を与えるテストのリストを取得する (GetImpactedTests アクティビティ)

現在のビルドでコードの変更を識別し、それらの変更の影響を受けるテストのリストを生成するには、GetImpactedTests アクティビティを使用します。 このアクティビティは、影響を受けるテストのリストをデータ ウェアハウスに書き込み、このビルドが完了した後に実行する必要があるテストをテスト チームのメンバーが判断できるようにします。 チームがこのデータを使用する方法の詳細については、「コード変更により影響を受けたテストの実行の推奨」を参照してください。

注意

このアクティビティは、ゲート チェックイン ビルドまたはプライベート ビルドには影響を与えません。

必須の条件

GetImpactedTests アクティビティが機能できるのは、次の条件が満たされている場合に限られます。

  • MSTest アクティビティが、テスト影響データを収集するテスト設定ファイル (TestSettings プロパティで指定) を使用して実行された。 自動的に生成される Traceandtestimpact.testsettings ファイルを使用するか、[テストの影響] チェック ボックスがオンになった別のテスト設定ファイルを使用できます。 詳細については、「方法: コードの変更後に実行するテストをチェックするためのデータを収集する」を参照してください。

  • GetImpactedTests アクティビティが、前回のビルドを正常に識別している。 詳細については、次のセクションを参照してください。

GetImpactedTests アクティビティで前回のビルドを識別する方法

GetImpactedTests アクティビティは、現在のビルドと前回のビルドを比較することでその結果を生成します。 また、このアクティビティは、次のプロセスを使用して前回のビルドを識別します。

  1. BaselineBuildDropLocation プロパティを指定した場合、それらのバイナリを生成したビルドは前回のビルドとして識別されます。

  2. BaselineBuildDropLocation プロパティを指定しない場合、このアクティビティは次のすべての条件を満たす最近のビルドをデータ ウェアハウスで探して前回のビルドを識別します。

    • ビルドの BuildDefinitionUri が現在のビルドと同じである。

    • ビルドの Status が Succeeded または PartiallySucceeded のいずれかである。

    • ビルドに DropLocation が設定されている。

    • ビルドがゲート チェックイン ビルドまたはプライベート ビルドではない。

GetImpactedTests の Result プロパティ

  • CodeChanges (CodeChangeList): 今回のビルドと前回のビルドの間にコード内の各メソッドに加えられた変更のリストを返します。 メソッドは、Microsoft Intermediate Language (MSIL) レベルで分析されます。

  • ImpactedTests (TestList): 前回のビルドと今回のビルドの間に加えられたコード変更の影響を受けたテストのリストを返します。

GetImpactedTests の引数プロパティ

  • [その他]

    • Build: ビルドの IBuildDetail オブジェクトを指定する必要があります。 GetBuildDetail アクティビティを使用すると、このオブジェクトへの参照を取得できます。
  • Miscellaneous

    • Assemblies (IEnumerable<String>): このアクティビティが検査するアセンブリのリストを指定する必要があります。 通常、これらのアセンブリは今回のビルドでビルドします。

    • AssociatedChangesets (IList<T><Changeset>): テスト影響結果と関連付ける変更セットを指定できます。 通常、ビルドする変更セットを指定します。 これらの変更セットへの参照は、AssociateChangesetsAndWorkItems アクティビティから取得できます。

    • BinariesRoot (String): アセンブリが依存するバイナリのパスを指定する必要があります。 この値は、GetBuildDirectory アクティビティを使用して値を取得できます。

    • Workspace (Workspace): ビルドのワークスペースへの参照を指定する必要があります。 この参照は、CreateWorkspace アクティビティの Result プロパティから取得できます。

    • BaselineBuildDropLocation (String): GetImpactedTests アクティビティで現在のビルドと比較するための、完了したビルドが存在する格納フォルダーのパスを指定できます。 このプロパティを指定しない場合、このアクティビティは前回のビルドのビルド システムをキューに配置しようとします。 詳細については、このセクションで前述した「GetImpactedTests アクティビティで前回のビルドを識別する方法」を参照してください。

ページのトップへ

プロセスを開始する (InvokeProcess アクティビティ)

ビルド サーバーでプロセスを開始する (プログラムを実行する) には、InvokeProcess アクティビティを使用します。 このアクティビティは、基本的には Start に対するラッパーです。

InvokeProcess の Result (Int32) プロパティ

プロセスから ExitCode を返します。

InvokeProcess の引数プロパティ

  • FileName (String): 開始するプロセス (実行するプログラム) の FileName を指定する必要があります。 たとえば、%ProgramFiles%\ContosoBuildUtils\MarkBins.exe のように指定します。

  • Arguments (String): プロセスに渡すコマンド ライン引数 (Arguments) を指定する必要があります。

  • EnvironmentVariables (IDictionary<TKey, TValue><String,String>): 追加の環境変数 (EnvironmentVariables) とその値を指定できます。

  • OutputEncoding (Encoding): 出力 (StandardOutputEncoding) およびエラー (RedirectStandardError) のストリームの読み取りに使用されるエンコーディングを指定できます。 多くの場合、既定値がこのプロパティに最も適しています。

    System.Text.Encoding.GetEncoding(System.Globalization.CultureInfo.InstalledUICulture.TextInfo.OEMCodePage)
    
  • WorkingDirectory (String): プロセスを実行する作業ディレクトリ (WorkingDirectory) を指定できます。

    たとえば、コンパイルされたバイナリに対して MarkBins.exe ユーティリティを実行できます。 ユーティリティの実行範囲を狭める場合は、GetBuildDirectory を呼び出して、結果をこのプロパティに設定できます。

プロセスから標準出力とエラー出力を表示するには

  1. InvokeProcess アクティビティで、[Double-click to view] (ダブルクリックして表示) をダブルクリックします。

  2. ツールボックスから WriteBuildMessage アクティビティをドラッグして、アクティビティが [標準出力の処理] の下に表示されるようにし、WriteBuildMessage の Message プロパティを stdOutput に設定します。

  3. ツールボックスから WriteBuildError アクティビティをドラッグして、アクティビティが [標準出力の処理] の下に表示されるようにし、WriteBuildMessage の Message プロパティを errOutput に設定します。

バージョン コントロールを操作する

Team Foundation ビルドのアクティビティを使用すると、次のバージョン コントロール タスクを実行できます。

  • 変更セットと作業項目をビルドに関連付ける

  • ゲート変更をチェックインする

  • チェックイン ポリシーを評価する

  • バージョン コントロールのファイルにラベルを付ける

変更セットと作業項目をビルドに関連付ける (AssociateChangesetsAndWorkItems アクティビティ)

完了した各ビルドをコードに追加されたすべての変更セットおよびそれらに関連付けられた作業項目にリンクするには、AssociateChangesetsAndWorkItems アクティビティを使用します。

各ビルド定義には、次の完了したビルドに関連付ける変更セットおよび作業項目を示す固有のレコードがあります。 たとえば、Build A と Build B の両方が変更セット 382 をビルドするとします。 Build A はキューに配置されて正常に完了しますが、Build B はキューに配置されて失敗します。 この場合、変更セット 382 は、現在、正常に完了した Build A と 失敗した Build B にリンクされています。この変更セットは、Build A の次の完了したビルドにはリンクされませんが、Build B の次の完了したビルドにはリンクされます。

AssociateChangesetsAndWorkItems の Result (IList<T><Changeset>) プロパティ

ビルドに関連付けられた変更セットを返します。

AssociateChangesetsAndWorkItems の引数プロパティ

  • CurrentLabel (String): このプロパティは空のままにします。

  • LastLabel (String): このプロパティは空のままにします。

  • UpdateWorkItems (Boolean): 関連付けられた作業項目の Fixed In (修正) フィールドにビルド番号を入力する場合は、このプロパティの値を True に設定できます。 それ以外の場合、値を False に設定します。

ページのトップへ

ゲート変更をチェックインする (CheckInGatedChanges アクティビティ)

ゲート チェックイン ビルドをトリガーしたバージョン コントロールのコード変更をチェックインするには、CheckInGatedChanges アクティビティを使用します。 このアクティビティは、変更セットに関連付けられた作業項目にもビルドを関連付けます。

注意

正しく機能するには、テンプレート内の MSBuild アクティビティおよび MSTest アクティビティのすべての実装の後にこのアクティビティを配置する必要があります。

CheckInGatedChanges の Result (Changeset) プロパティ

チェックインする変更が含まれる変更セットを返します。

CheckInGatedChanges の引数プロパティ

  • IgnoreErrors (Boolean): CompilationStatus プロパティと TestStatus プロパティの両方の値が Succeeded の場合のみファイルをチェックインできるようにするには、このプロパティを False に設定します。 これらのプロパティの値に関係なくファイルをチェックインできるようにするには、このプロパティを True に設定します。

    注意

    SetBuildProperties アクティビティを使用すると、CompilationStatus プロパティと TestStatus プロパティを設定できます。

  • UpdateWorkItems (String): 関連付けられた作業項目の Fixed In (修正) フィールドにビルド番号を入力する場合は、この値を True に設定できます。 それ以外の場合は False に設定します。

ページのトップへ

チェックイン ポリシーを評価する (EvaluateCheckInPolicies アクティビティ)

ビルド サーバーでチェックイン ポリシーを実行するには、EvaluateCheckInPolicies アクティビティを使用します。 このアクティビティは、ビルド定義の [ワークスペース] タブで指定されたフォルダーに適用されたチェックイン ポリシーを実行します。 チェックイン ポリシーが失敗し、ビルドの理由が CheckInShelveset (ゲート チェックイン ビルド) または ValidateShelveset (プライベート ビルド) のいずれかの場合、ビルドに失敗します。

重要

チェックイン ポリシーは、開発者のクライアント コンピューターではなく、ビルド サーバーで評価されます。

このアクティビティの最も効率的な使用方法は、ゲート チェックイン ビルドと同時に使用して、より強力な品質ゲートを適用する方法です。 この方法でアクティビティを使用した場合、ユーザーはチェックイン ポリシーをバイパスできなくなります。 このアクティビティは、次の種類のチェックイン ポリシーで最も役立ちます。

  • 組み込みの Work Items チェックイン ポリシー

  • ビルド サーバーで評価するように設計されたカスタム チェックイン ポリシー

このアクティビティは、組み込みの BuildsCode Analysis、または Testing Policy チェックイン ポリシーの評価には役立ちません。これらのプロセスは、MSBuild アクティビティと MSTest アクティビティを使用することにより、より効率的にビルドで直接実行できるためです。

詳細については、次のリソースを参照してください。

EvaluateCheckInPolicies の引数プロパティ

  • Workspace (Workspace): 評価するワークスペースを指定する必要があります。 ほとんどの場合、このプロパティは、CreateWorkspace アクティビティの Result プロパティで初期化される変数に設定する必要があります。 DefaultTemplate.xaml に基づくビルド処理を作成している場合、通常は Workspace 変数を使用します。

ページのトップへ

バージョン コントロールのファイルにラベルを付ける

Team Foundation ビルドのアクティビティを使用して、ファイルにラベルを付けることができます。

  • ビルドするソース コードにラベルを付ける

  • ファイルにラベルを付ける

ビルドするソース コードにラベルを付ける (LabelWorkspace アクティビティ)

バージョン コントロールのソース コード ファイルにラベルを付けて、特定の完了したビルドに各ファイルのどのバージョンが含まれているかをチームが簡単に判別できるようにする必要があります。 ビルド処理にこの手順を含めるには、LabelWorkspace アクティビティを使用します。

LabelWorkspace の引数プロパティ

  • Name (String): ラベルの名前を指定する必要があります。

  • Child (LabelChildOption): 指定したラベルに一致するラベルが既に付いている項目を処理する方法を指定できます。 このプロパティは、tf label コマンドの /child オプションに相当します。

  • Workspace (Workspace): このビルドのワークスペースへの参照を指定する必要があります。 ほとんどの場合、このプロパティは、CreateWorkspace アクティビティの Result プロパティで初期化される変数に設定する必要があります。 DefaultTemplate.xaml に基づくビルド処理を作成している場合、通常は Workspace 変数を使用します。

  • Comment (String): ラベルのコメントを指定できます。 このプロパティは、tf label コマンドの /comment オプションに相当します。

  • Scope (String): ラベルの範囲を指定できます。 このプロパティは、tf label コマンドの @scope 引数に相当します。

tf label パラメーターの詳細については、「Label コマンド (Team Foundation バージョン管理)」を参照してください。

ページのトップへ

ファイルにラベルを付ける (LabelSources アクティビティ)

バージョン コントロールのファイルにラベルを付けるには、LabelSources アクティビティを使用します。

ヒント

LabelWorkspace アクティビティを使用した場合、ビルドするソース コード ファイルに効率的に繰り返しラベルを付けることができます。

LabelSources の引数プロパティ

  • Items (IEnumerable<String>): ラベルを付ける項目を指定する必要があります。 各 String は、tf label コマンドの itemspec 引数に相当します。

  • Name (String): ラベルの名前を指定する必要があります。

  • Scope (String): ラベルの範囲を指定する必要があります。 このプロパティは、tf label コマンドの @scope 引数に相当します。

  • Recursion (RecursionType): ディレクトリ階層内のすべてのファイルにラベルを付ける場合、Microsoft.TeamFoundation.VersionControl.Client.RecursionType.Full を指定できます。 または、Microsoft.TeamFoundation.VersionControl.Client.RecursionType.OneLevel を指定することもできます。

  • Version (String): ラベルを付ける項目のバージョンを指定する必要があります。 このプロパティは、tf label コマンドの /version オプションに相当します。

  • Child (LabelChildOption): 指定したラベルに一致するラベルが既に付いている項目を処理する方法を指定できます。 このプロパティは、tf label コマンドの /child オプションに相当します。

  • Comment (String): ラベルのコメントを指定できます。 このプロパティは、tf label コマンドの /comment オプションに相当します。

tf label パラメーターの詳細については、「Label コマンド (Team Foundation バージョン管理)」を参照してください。

ページのトップへ

作業項目を操作する

Team Foundation ビルドのアクティビティを使用して、作業項目を操作することができます。

  • 変更セットと作業項目をビルドに関連付ける

  • 作業項目の作成

作業項目を作成する (OpenWorkItem アクティビティ)

作業項目を作成するには、OpenWorkItem アクティビティを使用します。

OpenWorkItem の Result (WorkItem) プロパティ

新しい作業項目を返します。

OpenWorkItem の引数プロパティ

  • AssignedTo (String): 作業項目を割り当てるユーザーを指定する必要があります。

  • Title (String): 作業項目のタイトルを指定する必要があります。

  • Type (String): 作業項目の種類を指定する必要があります。 一般的な Type 値は、“Bug”、“Issue”、“Task” などです。

  • Comment (String): 作業項目の履歴にコメントを追加できます。

  • CustomFields (IDictionary<TKey, TValue><String,String>): 作業項目の他の 1 つ以上のフィールドの値を指定できます。

ページのトップへ

シンボル データを操作する

Team Foundation ビルド の 2 つのアクティビティ (IndexSources および PublishSymbols) を使用することで、シンボル データを操作できます。

これらのアクティビティの一般的な用途は、IntelliTrace デバッグを有効にすることです。 IntelliTrace デバッグを有効にする場合、まず IndexSources アクティビティを呼び出してシンボル データを準備し、次に PublishSymbols アクティビティを呼び出してデータを SymStore シンボル ストアに発行する必要があります。

IntelliTrace デバッグの詳細については、「IntelliTrace を使用したデバッグ」を参照してください。

バージョン コントロールのパスとバージョンを PDB ファイルのシンボル データに埋め込む (IndexSources アクティビティ)

バージョン コントロールのパスとバージョンを .pdb ファイルのシンボル データに埋め込むには、IndexSources アクティビティを使用します。

IndexSources の引数プロパティ

  • FileList (IEnumerable<String>): 各シンボル ファイルの完全パスと名前を指定する必要があります。 FindMatchingFiles アクティビティを使用すると、この引数を指定できます。

    ** を使用すると、再帰的な検索を指定できます。 たとえば、MatchPattern プロパティに値 String.Format("{0}\**\*.pdb", BinariesDirectory) を指定して FindMatchingFiles を呼び出すことができます。

ページのトップへ

シンボルを SymStore シンボル ストアに発行する (PublishSymbols アクティビティ)

PDB ファイルのシンボル データを SymStore シンボル ストアに発行するには、PublishSymbols アクティビティを使用します。 このアクティビティは、基本的には SymStore.exe に対するラッパーです。 SymStore シンボル ストアとその準備方法については、「シンボル データの発行」を参照してください。

重要

同時実行ビルドが同じシンボル ファイル共有に発行しようとした場合、データが破損することがあります。 このリスクを削減するために、このアクティビティを呼び出すのは SharedResourceScope アクティビティ内のみにする必要があります。

PublishSymbols の Result (String) プロパティ

SymStore.exe が返すトランザクション ID を返します。

PublishSymbols の引数プロパティ

  • FileList (IEnumerable<String>): 各シンボル ファイルの完全パスと名前を指定する必要があります。 FindMatchingFiles アクティビティを使用すると、この引数を指定できます。

    たとえば、MatchPattern プロパティに値 String.Format("{0}\**\*.pdb", BinariesDirectory) を指定して FindMatchingFiles を呼び出すことができます。

  • StorePath (String): SymStore シンボル ストアのルート フォルダーの UNC ファイルを指定する必要があります。

  • CommandLineArguments (String): SymStore.exe に渡すことができるその他の引数のついては、「SymStore Command-Line Options (SymStore コマンド ライン オプション)」を参照してください。

  • Comments (String): シンボル ストアのトランザクション履歴ファイルに記録されるトランザクション コメントを指定できます。 このプロパティは、SymStore.exe コマンドの /c Comment パラメーターに相当します。 詳細については、「SymStore Command-Line Options (SymStore コマンド ライン オプション)」を参照してください。

  • ProductName (String): シンボル ストアのトランザクション履歴ファイルに記録される製品名を指定できます。 たとえば、このプロパティをビルド定義名 (Name) に設定できます。ビルド定義名は、GetBuildDetail を呼び出すことで BuildDefinition プロパティから取得できます。 このプロパティは、SymStore.exe コマンドの /t Product パラメーターに相当します。 詳細については、「SymStore Command-Line Options (SymStore コマンド ライン オプション)」を参照してください。

  • StoreCompressed (Boolean): この値を True に設定すると、ファイルを圧縮ファイルとしてシンボル ストアに保存できます。 それ以外の場合、ファイルは圧縮されずに保存されます。 このプロパティは、SymStore.exe コマンドの /compress パラメーターに相当します。 詳細については、「SymStore Command-Line Options (SymStore コマンド ライン オプション)」を参照してください。

  • Version (String): たとえば、GetBuildDetail を呼び出すことで取得可能なビルド番号 (BuildNumber) にこのプロパティを設定できます。 このプロパティは、SymStore.exe コマンドの /v Version パラメーターに相当します。 詳細については、「SymStore Command-Line Options (SymStore コマンド ライン オプション)」を参照してください。

ページのトップへ

有用なオブジェクトへの参照を取得する

Team Foundation ビルドのアクティビティを使用することで、有効なオブジェクトへの参照を取得できます。

チーム プロジェクト コレクションのオブジェクトへの参照を取得する (GetTeamProjectCollection アクティビティ)

TfsTeamProjectCollection オブジェクトへの参照をその Result プロパティから取得するには、GetTeamProjectCollection アクティビティを使用します。 この初期オブジェクトは重要です。たとえば、このオブジェクトを使用すると、Team Foundation のアプリケーション層サーバーに接続できます。

IBuildAgent オブジェクトへの参照を取得する (GetBuildAgent アクティビティ)

IBuildAgent オブジェクトへの参照をその Result プロパティから取得するには、GetBuildAgent アクティビティを使用します。 このアクティビティは、AgentScope アクティビティ内でのみ使用できます。

IBuildDetail オブジェクトへの参照を取得する (GetBuildDetail アクティビティ)

IBuildDetail オブジェクトへの参照をその Result プロパティから取得するには、GetBuildDetail アクティビティを使用します。 このオブジェクトを使用すると、現在のビルドに関するデータを取得でき、場合によっては設定できます。

ページのトップへ

BuildEnvironment オブジェクトへの参照を取得する (GetBuildEnvironment アクティビティ)

BuildEnvironment オブジェクトへの参照をその Result プロパティをとおして取得するには、GetBuildEnvironment アクティビティを使用します。 このプロパティは通常、次のタスクの実行に使用できます。

  • ワークフローの現在のセグメントがビルド コントローラーとビルド エージェントのどちらで実行されているかを判別するには、Environment オブジェクトを使用します。

  • ビルド エージェント上のカスタム アクティビティが含まれるアセンブリのパスを取得するには、CustomAssemblyPath オブジェクトを使用します。

ページのトップへ

カスタム ビルド処理での再利用を目的としないアクティビティ

一部のアクティビティは、カスタム ビルド処理で使用することを目的としていません。

TfsBuild アクティビティ

このアクティビティは無視してください。 UpgradeTemplate.xaml でのみ使用できます。 このアクティビティは、カスタム ビルド処理での再利用を目的としていません。

CreateWorkspace アクティビティ

ほとんどの場合、CreateWorkspace アクティビティのインスタンスを作成または変更する必要はありません。 1 つ以上の追加のワークスペースが必要なビルド処理を設計する場合、カスタム アクティビティを作成してこの目標を達成する必要があります。

その他のワークスペース アクティビティ

ビルド プロセス テンプレートでは、DefaultTemplatate.xaml と同じ方法でこれらのアクティビティを使用することができます。 ただし、カスタム アクティビティを開発してワークスペースを作成する場合を除き、ほとんどの場合、カスタム ビルド プロセス テンプレート内のワークスペースのインスタンスを作成または変更する必要はありません。

DeleteWorkspace

ページのトップへ

GetWorkspace

ページのトップへ

RevertWorkspace

ページのトップへ

SyncWorkspace

ページのトップへ

参照

その他の技術情報

ワークフロー デザイナーを使用したアプリケーションの開発

Windows Workflow Foundation

既定のテンプレートを使用してビルドを定義する

ビルド コントローラーの作成と使用

ビルド エージェントの作成と使用

MSBuild リファレンス

[ビルドの結果] ウィンドウの表示