カスタム ビルド プロセスのアクティビティを使用と開発を行う

C# アクティビティの "Hello World"

カスタム ビルド プロセス テンプレートの作成後は、Windows Workflow 命令および組み込みの Team Foundation ビルド (TFBuild) アクティビティを使用して、独自のビジネス ロジックを実装できます。 これらのツールでは不十分な場合は、サード パーティのアクティビティを使用するか、必要に応じて CodeActivity に独自の .NET Framework コードを実装できます。

ヒント

カスタム ビルド プロセス機能を Windows のバッチ ファイルまたは PowerShell スクリプトでコーディングできる場合は、スクリプトをアップロードし、ビルド プロセスの一部として実行できます。この方法は、カスタム ビルド プロセスを作成するよりも迅速かつ簡単に実行できる可能性があります。「ビルド プロセスでスクリプトを実行する」を参照してください。

  • カスタム ビルド プロセス アクティビティを作成する

  • ビルド プロセス テンプレートを編集する

  • カスタム ビルド プロセスをアップロードする

    • TFVC アイコン TFVC チーム プロジェクトでカスタム ビルド プロセスをアップロードし、有効にする

    • Git アイコン Git チーム プロジェクトでカスタム ビルド プロセスをアップロードし、有効にする

  • カスタム ビルド プロセスを有効にする

  • ビルドを実行する

  • Q & A

ビルド概要に表示された "Hello World"

カスタム ビルド プロセス アクティビティを作成する

重要

開始する前に、テンプレートのコピーを取得し、コード プロジェクトに配置します。まだこの作業を行っていない場合は、こちらの操作手順に従ってください。

ビルド プロセス テンプレートと同じソリューション内で、ビルド プロセス アクティビティを開発する必要があります。このようにすると、プロセス テンプレート内のいずれかのアクティビティを使用する必要がある場合に、このアクティビティをワークフロー デザイナーのツールボックスで利用できます。ただし、アクティビティのソース コードは、ビルド プロセス テンプレートを含むプロジェクトとは別のコード プロジェクトで保持する必要があります。

  1. ビルド プロセス テンプレートのコード プロジェクトが含まれているソリューションに、C# または Visual Basic の新しいコード プロジェクトを追加します。

    BuildProcessSource ソリューションの [新しいプロジェクト]

    新しいプロジェクト

  2. 新しいコード プロジェクトに以下の参照を追加します。

    どのようにすれば、これらの参照をコード プロジェクトに追加できますか。

    コード プロジェクトを保存します。

  3. 新しいアクティビティをプロジェクトに追加します。

    Source コード プロジェクトの [新しい項目]

    新しい項目の追加

  4. 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 ファイルは必要ないので、削除してもかまいません。

  5. Visual Studio でソリューションをビルドします (キーボード: Ctrl + Shift + B)。

完了すると、ソリューションは次のようになります。

カスタム ビルド プロセス ソリューションの例

ビルド プロセス テンプレートを編集する

ソリューションで、アクティビティをビルド プロセス テンプレートにドラッグして、テンプレートを編集します。 アクティビティをテンプレートに追加してから、そのプロパティを設定します (キーボード: F4)。

ビルド プロセス テンプレートをソリューションから編集

作業を終えたら、テンプレートを保存します。

カスタム ビルド プロセスをアップロードする

カスタム ビルド プロセス テンプレートとアクティビティを使用するビルドを定義する前に、それらのビルドをアップロードして有効にする必要があります。

  • TFVC アイコン TFVC チーム プロジェクトでカスタム ビルド プロセスをアップロードし、有効にする

  • Git アイコン Git チーム プロジェクトでカスタム ビルド プロセスをアップロードし、有効にする

TFVC チーム プロジェクトでカスタム ビルド プロセスをアップロードする

TFVC アイコン TFVC チーム プロジェクトで:

  1. ソリューションをビルドしたことを確認します (キーボード: Ctrl + Shift + B)。

  2. ビルド プロセス ソースを格納する予定のチーム プロジェクトに接続します (キーボード: Ctrl + 0、C)。

  3. ソース管理エクスプローラーで、アクティビティ コード プロジェクトを含むフォルダーに項目を追加します。

    ソース管理エクスプローラー

  4. .dll ファイルが含まれているフォルダーを参照し、選択します。 たとえば、C:\Users\YourName\Source\Workspaces\FabrikamTFVC\BuildProcessTemplates\BuildProcessSource\Source\bin\Debug です。

    TFVC バージョン管理へのビルド プロセス バイナリの追加

  5. ファイルを追加するためにプロセスを終了します。

    TFVC バージョン管理へのビルド プロセス バイナリの追加

  6. 変更をチェックインします。

    [保留中の変更]

Git チーム プロジェクトでカスタム ビルド プロセスをアップロードする

Git アイコン Git チーム プロジェクトで:

  1. 重要 :

    • バイナリを格納すると (特に、大きなファイルの多数のリビジョンがある場合)、Git リポジトリのサイズが巨大になる可能性があります。 アプリケーションをビルドするコードとは異なるリポジトリにカスタム ビルド プロセス バイナリを格納することをお勧めします。 この目的用に別のチーム プロジェクトを作成したり、既存のチーム プロジェクトに追加のリポジトリを作成したりすることができます。

    • Git リポジトリのサブフォルダーにバイナリを格納する必要があります。 ルート フォルダーのバイナリを使用しようとすると、"git 分岐が見つからない" というエラー メッセージによってブロックされる場合があります。

  2. ソリューションをビルドしたことを確認します (キーボード: Ctrl + Shift + B)。

  3. ビルド プロセス ソースを格納する予定のチーム プロジェクトに接続します (キーボード: Ctrl + 0、C)。

  4. Git コマンド プロンプトを開きます。

    [変更] ページの [コマンド プロンプトを開く]

    Q: コマンド プロンプトを開けません。どうしたらよいですか。A: Git コマンド プロンプトを有効にする

  5. Git コマンド プロンプトを使用して、.dll ファイルを追加します。 次に例を示します。

    cd c:\users\YourName\source\repos\BuildProcesses\BuildProcessSource\Source\bin\Debug
    
    git add Source.dll -f
    
  6. 変更をコミットします。

    [変更] ページの [コミット] ボタン

  7. コミットを同期またはプッシュします。

    [変更] ページの [同期] リンク

    [同期されていないコミット] ページの [同期] ボタンと [プッシュ] リンク

カスタム ビルド プロセスを有効にする

カスタム ビルド プロセスを実行するには、TFS にアップロードしたバイナリをビルド コントローラーに指定し、ビルド定義内のビルド プロセス テンプレートを選択する必要があります。

  1. [ビルド] ページ (キーボード: Ctrl + 0、B) で [アクション] を選択し、[ビルド コントローラーの管理] を選択します。

  2. [ビルド コントローラーの管理] ダイアログ ボックスで、このビルド プロセスの実行に使用するコントローラーを強調表示し、[プロパティ] をクリックします。

    [ビルド コントローラーの管理] ダイアログ ボックス

  3. カスタム アセンブリへのバージョン コントロール パスを指定します。

    [ビルド コントローラーのプロパティ] ダイアログ ボックス

    VisualStudioEllipsesButton スクリーンショット 前の手順でビルド プロセスをアップロードしたフォルダーの先祖であるフォルダーを参照します。

    • TFVC アイコン TFVC の例: $/FabrikamTFVC/BuildProcessTemplates/BuildProcessSource/Source/bin/Debug

    • Git アイコン Git の例: BuildProcessSource/Source/Bin/Debug

      Git 値を表示する [参照] ダイアログ ボックス

      入力する値は、システムによって自動的に vstfs パスに変換されます。 例: vstfs:///Git/VersionedItem/FabrikamGit/BuildProcesses/master/BuildProcessSource/Source/Bin/Debug

      [カスタム アセンブリへのバージョン コントロール パス]

  4. まだであれば、ビルド定義を作成または変更し、カスタム ビルド プロセス テンプレートを選択します。

    カスタム プロセス テンプレートによるビルド定義

ビルドを実行する

ビルドをキューに配置します。 結果は次のようになります。

ビルド概要に表示された "Hello World"

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: ビルド プロセス テンプレート、ワークフロー アクティビティ、およびスクリプトはどこで取得できますか。

A: TFS ビルド拡張機能のコミュニティ

Q: カスタム ビルド プロセスの開発方法に関する詳細は、どこで学習できますか。

A: Curated answer: Customize your Team Foundation Build process (回答: Team Foundation ビルド プロセスのカスタマイズ)