カスタム ビルド プロセスのアクティビティを使用と開発を行う
カスタム ビルド プロセス テンプレートの作成後は、Windows Workflow 命令および組み込みの Team Foundation ビルド (TFBuild) アクティビティを使用して、独自のビジネス ロジックを実装できます。 これらのツールでは不十分な場合は、サード パーティのアクティビティを使用するか、必要に応じて CodeActivity に独自の .NET Framework コードを実装できます。 ヒント カスタム ビルド プロセス機能を Windows のバッチ ファイルまたは PowerShell スクリプトでコーディングできる場合は、スクリプトをアップロードし、ビルド プロセスの一部として実行できます。この方法は、カスタム ビルド プロセスを作成するよりも迅速かつ簡単に実行できる可能性があります。「ビルド プロセスでスクリプトを実行する」を参照してください。
|
カスタム ビルド プロセス アクティビティを作成する
重要
開始する前に、テンプレートのコピーを取得し、コード プロジェクトに配置します。まだこの作業を行っていない場合は、こちらの操作手順に従ってください。
ビルド プロセス テンプレートと同じソリューション内で、ビルド プロセス アクティビティを開発する必要があります。このようにすると、プロセス テンプレート内のいずれかのアクティビティを使用する必要がある場合に、このアクティビティをワークフロー デザイナーのツールボックスで利用できます。ただし、アクティビティのソース コードは、ビルド プロセス テンプレートを含むプロジェクトとは別のコード プロジェクトで保持する必要があります。
ビルド プロセス テンプレートのコード プロジェクトが含まれているソリューションに、C# または Visual Basic の新しいコード プロジェクトを追加します。
新しいコード プロジェクトに以下の参照を追加します。
どのようにすれば、これらの参照をコード プロジェクトに追加できますか。
コード プロジェクトを保存します。
新しいアクティビティをプロジェクトに追加します。
CodeActivity を実装します。たとえば、Hello.cs の場合は次のようになります。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Activities; using Microsoft.TeamFoundation.Build.Workflow.Activities; using Microsoft.TeamFoundation.Build.Client; using Microsoft.TeamFoundation.Build.Workflow.Tracking; namespace BuildProcessSource { // enable the build process template to load the activity [BuildActivity(HostEnvironmentOption.All)] // keep the internal activity operations from appearing in the log [ActivityTracking(ActivityTrackingOption.ActivityOnly)] public sealed class Hello : CodeActivity { // Define an activity input argument of type string public InArgument<string> SayHelloTo { get; set; } // If your activity returns a value, derive from CodeActivity<TResult> // and return the value from the Execute method. protected override void Execute(CodeActivityContext context) { // Obtain the runtime value of the Text input argument string text = context.GetValue(this.SayHelloTo); // Add our default value if we did not get one if (text == null || text == "") { text = "World"; } // Write the message to the log context.TrackBuildWarning("Hello " + text, BuildMessageImportance.High); } } }
Activity1.xaml ファイルは必要ないので、削除してもかまいません。
Visual Studio でソリューションをビルドします (キーボード: Ctrl + Shift + B)。
完了すると、ソリューションは次のようになります。
ビルド プロセス テンプレートを編集する
ソリューションで、アクティビティをビルド プロセス テンプレートにドラッグして、テンプレートを編集します。 アクティビティをテンプレートに追加してから、そのプロパティを設定します (キーボード: F4)。
作業を終えたら、テンプレートを保存します。
カスタム ビルド プロセスをアップロードする
カスタム ビルド プロセス テンプレートとアクティビティを使用するビルドを定義する前に、それらのビルドをアップロードして有効にする必要があります。
TFVC チーム プロジェクトでカスタム ビルド プロセスをアップロードし、有効にする
Git チーム プロジェクトでカスタム ビルド プロセスをアップロードし、有効にする
TFVC チーム プロジェクトでカスタム ビルド プロセスをアップロードする
TFVC チーム プロジェクトで:
ソリューションをビルドしたことを確認します (キーボード: Ctrl + Shift + B)。
ビルド プロセス ソースを格納する予定のチーム プロジェクトに接続します (キーボード: Ctrl + 0、C)。
ソース管理エクスプローラーで、アクティビティ コード プロジェクトを含むフォルダーに項目を追加します。
.dll ファイルが含まれているフォルダーを参照し、選択します。 たとえば、C:\Users\YourName\Source\Workspaces\FabrikamTFVC\BuildProcessTemplates\BuildProcessSource\Source\bin\Debug です。
ファイルを追加するためにプロセスを終了します。
変更をチェックインします。
Git チーム プロジェクトでカスタム ビルド プロセスをアップロードする
Git チーム プロジェクトで:
重要 :
バイナリを格納すると (特に、大きなファイルの多数のリビジョンがある場合)、Git リポジトリのサイズが巨大になる可能性があります。 アプリケーションをビルドするコードとは異なるリポジトリにカスタム ビルド プロセス バイナリを格納することをお勧めします。 この目的用に別のチーム プロジェクトを作成したり、既存のチーム プロジェクトに追加のリポジトリを作成したりすることができます。
Git リポジトリのサブフォルダーにバイナリを格納する必要があります。 ルート フォルダーのバイナリを使用しようとすると、"git 分岐が見つからない" というエラー メッセージによってブロックされる場合があります。
ソリューションをビルドしたことを確認します (キーボード: Ctrl + Shift + B)。
ビルド プロセス ソースを格納する予定のチーム プロジェクトに接続します (キーボード: Ctrl + 0、C)。
Git コマンド プロンプトを開きます。
Q: コマンド プロンプトを開けません。どうしたらよいですか。A: Git コマンド プロンプトを有効にする
Git コマンド プロンプトを使用して、.dll ファイルを追加します。 次に例を示します。
cd c:\users\YourName\source\repos\BuildProcesses\BuildProcessSource\Source\bin\Debug git add Source.dll -f
変更をコミットします。
コミットを同期またはプッシュします。
カスタム ビルド プロセスを有効にする
カスタム ビルド プロセスを実行するには、TFS にアップロードしたバイナリをビルド コントローラーに指定し、ビルド定義内のビルド プロセス テンプレートを選択する必要があります。
[ビルド] ページ (キーボード: Ctrl + 0、B) で [アクション] を選択し、[ビルド コントローラーの管理] を選択します。
[ビルド コントローラーの管理] ダイアログ ボックスで、このビルド プロセスの実行に使用するコントローラーを強調表示し、[プロパティ] をクリックします。
カスタム アセンブリへのバージョン コントロール パスを指定します。
前の手順でビルド プロセスをアップロードしたフォルダーの先祖であるフォルダーを参照します。
TFVC の例: $/FabrikamTFVC/BuildProcessTemplates/BuildProcessSource/Source/bin/Debug
Git の例: BuildProcessSource/Source/Bin/Debug
入力する値は、システムによって自動的に vstfs パスに変換されます。 例: vstfs:///Git/VersionedItem/FabrikamGit/BuildProcesses/master/BuildProcessSource/Source/Bin/Debug
まだであれば、ビルド定義を作成または変更し、カスタム ビルド プロセス テンプレートを選択します。
ビルドを実行する
ビルドをキューに配置します。 結果は次のようになります。
Q & A
Q: アクセス許可がないため、システムによってブロックされてしまいました。アクセス許可を得るにはどうすればよいですか。
A: Team Foundation Server のアクセス許可の参照
Q: TFBuild ワークフローで操作する必要がある参照を追加するにはどうすればよいですか。
A: 参照を追加するには、参照マネージャーを使用します。
コード プロジェクトの参照を表示し、参照マネージャーを開きます。
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ReferenceAssemblies\v2.0 に移動し、以下のものを選択して追加します。
Q: カスタム ビルド プロセスのエラーの原因は何ですか。
A: エラーの一般的な原因。
Q: Windows Workflow Foundation とは何ですか。どのように使用するのですか。
A: Windows Workflow Foundation。
Q: 組み込みアクティビティについては、どこで学習できますか。
A: Team Foundation ビルドのアクティビティ
Q: ビルド プロセス テンプレート、ワークフロー アクティビティ、およびスクリプトはどこで取得できますか。
Q: カスタム ビルド プロセスの開発方法に関する詳細は、どこで学習できますか。
A: Curated answer: Customize your Team Foundation Build process (回答: Team Foundation ビルド プロセスのカスタマイズ)