共用方式為


針對累加建置設定 Team Foundation Build

這個主題描述如何使用升級範本來定義累加建置。 如需升級範本的詳細資訊,請參閱 使用升級範本定義組建。 使用預設範本,您就能更輕鬆地執行這個程序。 如需詳細資訊,請參閱 使用預設範本定義組建

累加建置會重複使用 Team Foundation Build 所維護之上一個組建的結果,以根據上一個組建之後所做的變更來執行最佳化建置。

當您為累加建置建立組建定義之後,請執行第一個組建。 如此會建立必要的工作區 (Workspace),並將所有原始程式檔 (Source File) 放到組建電腦上。

必要條件

在您完成這項工作之前,必須具備以下條件:

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

    每一個 Team Build 定義都有一個與其關聯的 TFSBuild.proj 檔,該檔案位於 Team Foundation 版本控制的 $/MyTeamProject/TeamBuildTypes/MyBuildName 資料夾內。 MyTeamProject 是 Team 專案的名稱, 它是所有 Team 專案來源的根節點。 MyBuildName 是您提供給組建定義的名稱。 如需如何建立 Team Foundation Build 組建類型的詳細資訊,請參閱 建立基本組建定義

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

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

秘訣秘訣

也可以透過在 [MSBuild 引數] 參數中包含下列字串,在將組建排入佇列時以累加方式執行組建:/p:IncrementalBuild=true。 如需詳細資訊,請參閱 將組建排入佇列

必要的使用權限

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

取得 TFSBuild.proj 檔案的本機複本

在您變更會定義組建定義的 TFSBuild.proj 檔案之前,必須先取得本機複本。

若要取得 TFSBuild.proj 檔案的本機複本

  1. 在 [檢視] 功能表上,選取 [其他視窗],然後選取 [原始檔控制總管]。

  2. 在 [原始檔控制總管] 中,按一下工具列上的 [工作區],然後從清單中選取您的工作區。

  3. 開啟包含您組建類型的 Team 專案資料夾,然後展開 [TeamBuildTypes] 資料夾。

  4. 以滑鼠右鍵按一下 TFSBuild.proj 檔案,然後選取 [取得最新的版本] 來複製此檔案的最新版本。

    如需詳細資訊,請參閱 取得 Team 專案的原始檔

設定 TFSBuild.proj 檔案中的屬性

若要指定累加建置,您必須在 TFSBuild.proj 檔案中設定 IncrementalBuild 屬性。

若要設定 TFSBuild.proj 檔案中的屬性

  • IncrementalBuild 屬於快捷屬性,它會將 SkipClean 設定為 true、將 SkipInitializeWorkspace 設定為 true,並將 ForceGet 設定為 false。

  • 當 Team Foundation Build 執行完整建置時,它會清除 Clean 目標內的中介組建資料夾與來源資料夾中的檔案。 在累加建置中,必須略過這個目標,因為這些檔案在下一個組建中必須原封不動。 若要達成這個目的,請將 SkipClean 設定為 true。

  • 在完整建置的過程中,Team Foundation Build 會刪除舊的檔案,並重新建立新的工作區來清除及同步處理來源檔案。 在累加建置中,也必須略過這個目標。 若要達成這個目的,請將 SkipInitializeWorkspace 設定為 true。

  • Get 工作中,Team Foundation Build 預設會擷取新的來源檔案,以及覆寫組建工作區內的現有檔案。 如果只要擷取變更過的檔案,請將 ForceGet 屬性設定為 false。

    若要將 IncrementalBuild 屬性設定為 true,請將 PropertyGroup 定義加入至 TFSBuild.proj 檔案結尾的結束 </project> 標記之前。

       <PropertyGroup>
          <IncrementalBuild>true</IncrementalBuild>
       </PropertyGroup>
    

請參閱

概念

可自訂的 Team Foundation Build 目標

送出變更