次の方法で共有


ビルド番号のカスタマイズ

ここでは、アップグレード テンプレートを使用するときにビルド番号をカスタマイズする方法について説明します。 アップグレード テンプレートの詳細については、「アップグレード テンプレートを使用してビルドを定義する」を参照してください。 既定のテンプレートを使用すると、この手順をより簡単に実行できます。 詳細については、「既定のテンプレートを使用してビルドを定義する」を参照してください。

ビルド中に実行される独自のカスタム タスクを作成することで、Team Foundation ビルドをカスタマイズできます。 ここでは、ビルド番号を生成するタスクで Team Foundation ビルドのビルド定義をカスタマイズするために必要な手順について説明します。

必要条件

ビルド番号をカスタマイズするタスクを作成する前に、以下の環境が整っていることを確認します。

  • カスタマイズするビルド定義に対応した TFSBuild.proj ファイルへのアクセス。

    TFSBuild.proj ファイルは、1 つまたは複数のビルド定義に関連付けることができます。 TFSBuild.proj ファイルのソース管理の場所を確認するには、チーム エクスプローラーで [ビルド] フォルダー内のビルド定義を右クリックし、[編集] をクリックします。 TFSBuild.proj ファイルのソース管理の場所が、[ビルド定義] ダイアログ ボックスの [プロジェクト ファイル] ペインに表示されます。 既定では、TFSBuild.proj ファイルは、Team Foundation バージョン管理の $/MyTeamProject/TeamBuildTypes/MyBuildName フォルダーに配置されます。 MyTeamProject はチーム プロジェクトの名前で、チーム プロジェクトのすべてのソースのルート ノードです。 MyBuildName は、TFSBuild.proj ファイルに関連付けられた最初のビルド定義に付けた名前です。 Team Foundation ビルドのビルドの種類を作成する方法の詳細については、「基本的なビルド定義の作成」を参照してください。

    重要

    TFSBuild.proj ファイルをカスタマイズすると、それに関連付けられているビルド定義がカスタマイズされます。

  • ローカル コンピューター上にチーム プロジェクト ファイルとビルド ファイルが置かれたローカル ワークスペース。

    詳細については、「ワークスペースの作成とファイルの取得」および「チーム プロジェクトのソースの取得」を参照してください。

  • 必要なアクセス許可

このタスクを実行するには、[ビルドを管理します] および [ワークスペースの管理] のアクセス許可が [許可] に設定されている必要があります。 また、[チェックイン] および [チェックアウト] のアクセス許可も [許可] に設定されている必要があります。 詳細については、「Team Foundation Server のアクセス許可」を参照してください。

ビルド番号のタスクの作成

タスクを作成するには、ITask インターフェイスを直接実装するか、または Task ヘルパー クラスから派生するクラスを作成します。 ITask は Microsoft.Build.Framework.dll アセンブリで定義され、Task は Microsoft.Build.Utilitites.dll アセンブリで定義されています。

Team Foundation ビルド によって生成されるビルド番号をカスタマイズするには、BuildNumberOverrideTarget ターゲットにタスクを挿入する必要があります。 BuildNumberOverrideTarget には BuildNumber. という出力プロパティが必要です。Output 属性は、プロパティがカスタム タスクの出力であることを示します。 Team Foundation ビルドのターゲットの詳細については、「カスタマイズ可能な Team Foundation のビルド ターゲット」を参照してください。

カスタム タスクを作成するには

  1. カスタム タスクが含まれる、MyTask という名前の Visual C# クラス ライブラリを作成します。

    詳細については、「コンポーネントのクラス」を参照してください。

  2. [プロジェクト] メニューの [参照の追加] をクリックし、[参照の追加] ダイアログ ボックスで、[Microsoft.Build.Framework] および [Microsoft.Build.Utilities] を選択します。

  3. 次のコードを class.cs ファイルに追加します。

    この例では、Task ヘルパー クラスを継承し、DateTimeUtcNow プロパティおよび Ticks プロパティを使用してビルド番号を生成します。

    using System;
    using Microsoft.Build.Utilities;
    using Microsoft.Build.Framework;
    
    namespace BuildNumberGenerator
    {
        public class BuildNumberGenerator:Task
        {
            public override bool Execute()
            {            
                m_buildNumber = DateTime.UtcNow.Ticks.ToString();
                return true;
            }
            private string m_buildNumber;
    
            [Output]
            public string BuildNumber
            {
                get { return m_buildNumber; }
            }
        }
    }
    
  4. クラス ライブラリをビルドして、MyTask.dll を生成します。

  5. ビルドされた DLL をローカル ワークスペース フォルダーにコピーします。このフォルダーには、目的のビルド定義の TFSBuild.proj ファイルも含まれています。

    重要

    TFSBuild.proj ファイルのソース管理の場所をローカル ワークスペースにマップしていないと、クライアント コンピューターにこのディレクトリ構造は存在しません。 詳細については、「チーム プロジェクトのソースの取得」を参照してください。

    TFSBuild.proj ファイルが既定のソース管理フォルダーに保存されている場合、そのファイルのローカル コピーは、クライアント コンピューターの <root>:\Local Workspace\TeamBuildTypes\MyBuildName に配置されます。 Local Workspace はチーム プロジェクトのマップ先のローカル フォルダー、MyTeamProject はチーム プロジェクトの名前、MyBuildName はこの TFSBuild.proj ファイルに関連付けられた最初のビルド定義に付けた名前です。

ソース管理への DLL ファイルの追加

カスタム タスクを含む DLL を作成したら、その DLL を Team Foundation バージョン管理に追加する必要があります。 tf add コマンドと tf checkin コマンドを使用すると、目的のビルド定義の TfsBuild.proj ファイルと同じ場所に DLL を追加してチェックインできます。 詳細については、「Add コマンド」および「Checkin コマンド」を参照してください。

アセンブリを追加およびチェックインするには

  1. [スタート] ボタンをクリックし、[すべてのプログラム][Microsoft Visual Studio 9.0][Visual Studio Tools] の順にポイントし、[Visual Studio 2008 コマンド プロンプト] をクリックします。 カスタマイズするビルドの種類を含むチーム プロジェクトにマップしたローカル ワークスペースを開きます。

    たとえば、コマンド プロンプトで次のように入力します。

    > cd c:\MyTeamProject

    MyTeamProject はチーム プロジェクトの名前です。

  2. TFSBuild.proj ファイルの保存場所に移動します。

    たとえば、コマンド プロンプトで次のように入力します。

    c:\MyTeamProject>cd TeamBuildTypes\MyBuildName

    MyBuildName はビルド定義の名前です。

  3. Team Foundation バージョン管理にファイルを追加するには、次のコマンドを入力します。

    c:\MyTeamProject\TeamBuildTypes\MyBuildName> tf add MyTask.dll

  4. Team Foundation バージョン管理にファイルをチェックインするには、次のコマンドを入力します。

    c:\MyTeamProject\TeamBuildTypes\MyBuildName> tf checkin MyTask.dll

    チーム エクスプローラーを使用して DLL を Team Foundation バージョン管理に追加することもできます。 詳細については、「バージョン管理へのファイルの追加」を参照してください。

タスクの登録

タスクを作成した後、TFSBuild.proj ファイルの UsingTask 要素でタスクを指定して、タスクを登録する必要があります。 UsingTask 要素は、タスクの実装を持つアセンブリに対応付けます。 詳細については、「UsingTask 要素 (MSBuild)」を参照してください。

TFSBuild.proj ファイルを変更してタスクを登録するには

  1. Visual Studio を起動します。

  2. 変更する TFSBuild.proj ファイルを Team Foundation バージョン管理からチェックアウトし、Visual Studio XML エディターで開きます。

  3. TFSBuild.proj ファイルで、インポート ステートメントの直後に UsingTask 要素を追加します。

    <UsingTask 
        TaskName="BuildNumberGenerator.BuildNumberGenerator" 
        AssemblyFile="MyTask.dll"/>
    
  4. BuildNumberOverrideTarget ターゲットにタスクを挿入するには、次の <Target></Target> タグで囲まれた XML を TFSBuild.proj ファイルの末尾に追加します。

    </ItemGroup>
      <Target Name = "BuildNumberOverrideTarget" >
        <BuildNumberGenerator> 
        <Output TaskParameter="BuildNumber" PropertyName="BuildNumber"/> 
        </BuildNumberGenerator> 
      </Target>
    </Project>
    
  5. [ファイル] をクリックし、[保存] をクリックして変更を保存して、TFSBuild.proj ファイルを閉じます。

    注意

    TFSBuild.proj ファイルを変更すると、XML スキーマ警告が表示されます。 この警告は無視してかまいません。

  6. TFSBuild.proj をソース管理に再度チェックインします。

  7. TFSBuild.proj ファイルを変更し、Team Foundation バージョン管理に変更を保存したら、ビルド定義を実行します。

    詳細については、「ビルドをキューに配置する」を参照してください。

    ビルド エクスプローラーでカスタムのビルド番号を確認できます。 詳細については、「実行中のビルドの進行状況の監視」を参照してください。

参照

その他の技術情報

アプリケーションのビルド

アップグレード テンプレートを使用してビルドを定義する

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