共用方式為


自訂組建編號

本主題將說明如何在使用升級範本時自訂組建編號。 如需升級範本的詳細資訊,請參閱 使用升級範本定義組建。 使用預設範本,您就能更輕鬆地執行這個程序。 如需詳細資訊,請參閱 使用預設範本定義組建

您可以建立自己的自訂工作,並且在建置期間執行這些工作,藉此來自訂 Team Foundation Build。 本主題將說明一些您必須遵循的步驟,以便使用產生組建編號的工作來自訂 Team Foundation Build 組建定義。

必要條件

建立工作來自訂組建編號之前,務必先取得下列項目:

  • 能夠存取您要自訂之組建定義的 TFSBuild.proj 檔案。

    TFSBuild.proj 檔可以與多個組建定義相關聯。 若要決定 TFSBuild.proj 檔的原始檔控制位置,請在 Team 總管的 [Builds] 資料夾中,選取並以右鍵按一下該組建定義,再按一下 [編輯]。 TFSBuild.proj 檔案的原始檔控制位置會在 [組建定義] 對話方塊的 [專案檔] 窗格中顯示。 根據預設,TFSBuild.proj 檔會位在 Team Foundation 版本控制的這個資料夾中:$/MyTeamProject/TeamBuildTypes/MyBuildName。 MyTeamProject 是您 Team 專案的名稱而且是所有 Team 專案來源的根節點。 MyBuildName 是您給予與 TFSBuild.proj 檔相關聯的第一個組建定義的名稱。 如需如何建立 Team Foundation Build 組建類型的詳細資訊,請參閱 建立基本組建定義

    重要事項重要事項

    當您自訂 TFSBuild.proj 檔時,會定義與該檔案相關的每一個組建定義。

  • 本機工作區 (Workspace),其中包含本機電腦上的 Team 專案檔和組建檔。

    如需詳細資訊,請參閱 建立工作區和取得檔案取得 Team 專案的原始檔

  • 必要的使用權限

您必須將 [管理組建] 和 [管理工作區] 使用權限設定為 [允許],才能執行此工作。 您也必須將 [簽入] 和 [簽出] 使用權限設定為 [允許]。 如需詳細資訊,請參閱 Team Foundation Server 使用權限

撰寫組建編號工作

若要撰寫工作,您可以直接實作 ITask 介面,或從 Helper 類別 Task 衍生類別。 ITask 是在 Microsoft.Build.Framework.dll 組件中定義的,而 Task 則是在 Microsoft.Build.Utilitites.dll 組件中定義的。

若要自訂 Team Foundation Build 產生的組建編號,您必須將工作插入 BuildNumberOverrideTarget 目標。 BuildNumberOverrideTarget 需要使用名為 BuildNumber. 的輸出屬性 (Property)。Output 屬性 (Attribute) 表示該屬性 (Property) 是自訂工作的輸出。 如需 Team Foundation Build 目標的詳細資訊,請參閱可自訂的 Team Foundation Build 目標

若要撰寫您的自訂工作

  1. 請建立名為 MyTask 的 Visual C# 類別庫 (Class Library),而且其中包含您的自訂工作。

    如需詳細資訊,請參閱 元件類別

  2. 在 [專案] 功能表上,按一下 [加入參考],然後從 [加入參考] 對話方塊中選取 Microsoft.Build.Framework 和 Microsoft.Build.Utilities。

  3. 將下列程式碼插入 class.cs 檔。

    這則範例繼承自 Task Helper 類別並使用 DateTime 屬性 UtcNowTicks 來產生組建編號。

    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 檔的原始檔控制位置對應至本機工作區。 如需詳細資訊,請參閱 取得 Team 專案的原始檔

    如果您的 TFSBuild.proj 檔儲存在原始檔控制的預設資料夾中,則該檔案的本機複本會位於用戶端電腦上的 <root>:\Local Workspace\TeamBuildTypes\MyBuildName 中。 Local Workspace 是您 Team 專案所對應的本機資料夾、MyTeamProject 是 Team 專案的名稱,而 MyBuildName 是您為與這個 TFSBuild.proj 檔相關的第一個組建定義指定的名稱。

將 DLL 檔加入至原始檔控制

在您已建立包含自訂工作的 DLL 之後,就必須將它加入至 Team Foundation 版本控制。 您可以使用 tf addtf checkin 命令將 DLL 加入和簽入至與組建定義的 TFSBuild.proj 檔相同的位置。 如需詳細資訊,請參閱Add 命令Checkin 命令

若要加入並簽入組件

  1. 按一下 [開始],並依序指向 [所有程式]、[Microsoft Visual Studio 9.0]、[Visual Studio Tools],然後按一下 [Visual Studio 2008 命令提示字元]。 開啟您針對 Team 專案 (包含想要自訂的組建類型) 所對應的本機工作區。

    例如,請在命令提示字元中輸入下列命令。

    > cd c:\MyTeamProject

    其中 MyTeamProject 是 Team 專案的名稱。

  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

    您也可以使用 Team 總管將個人的 DLL 加入至 Team Foundation 版本控制。 如需詳細資訊,請參閱 將檔案加入至版本控制

註冊工作

在您建立工作之後,必須在 TFSBuild.proj 檔的 UsingTask 項目中指定工作,為它進行註冊。 UsingTask 項目會將工作對應至包含該工作實作 (Implementation) 的組件。 如需詳細資訊,請參閱 UsingTask 項目 (MSBuild)

若要透過修改 TFSBuild.proj 檔註冊工作

  1. 啟動 Visual Studio。

  2. 將要修正的 TFSBuild.proj 檔案從 Team Foundation 版本控制簽出,並在 Visual Studio XML 編輯中開啟。

  3. UsingTask 項目加入至 TFSBuild.proj 檔中,緊接在 import 陳述式 (Statement) 之後。

    <UsingTask 
        TaskName="BuildNumberGenerator.BuildNumberGenerator" 
        AssemblyFile="MyTask.dll"/>
    
  4. 若要將工作插入 BuildNumberOverrideTarget 目標,請將下列 XML (以 <Target></Target> 標記包圍) 加入 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 版本控制後,請執行組建定義。

    如需詳細資訊,請參閱 將組建排入佇列

    您可以在 [Build 總管] 中檢視自訂的組建編號。 如需詳細資訊,請參閱 監視執行中組建的進度

請參閱

概念

使用升級範本定義組建

使用預設範本定義組建

其他資源

建置應用程式