根據預設範本定義建置流程

您可以使用預設範本 (DefaultTemplate.11.1.xaml)快速定義基本組建藉由透過選取想要建置的程式碼專案。 您也可以使用這個範本來加入更進階的功能 (例如執行自動化測試) 以及調整建置流程的許多層面,以便符合小組的需求。

必要的使用權限

若要執行這個程序,您必須將 [編輯組建定義] 權限設定為 [允許]。 如需詳細資訊,請參閱Team Foundation Server 使用權限

若要使用預設範本建立組建定義

  1. 在 [Team 總管] 中:

    1. 如果您尚未連接至要處理的 Team 專案,請連接到 Team 專案

    2. 選擇首頁圖示 首頁, 然後再選組建圖示 [組建].

    3. 在 [組建] 頁面上,選取 [新增組建定義]。

    [新增組建定義] 視窗隨即出現。

  2. 點選處理程序 索引標籤下的 建置流程範本中,預設為預設範本。 在 [建置流程參數] 底下,展開 [必要項] 節點,並且至少指定一個要建置的方案或專案。

    如需詳細資訊,請參閱本主題後面的指定您想要建置的專案。

  3. 使用本主題稍後的資訊,來完成提供功能的欄位,這些功能是您要放入此組建定義的功能。

  4. 當您完成 [流程] 索引標籤上的欄位之後,選取流程中的其他欄位。

    如需詳細資訊,請參閱建立組建定義

本主題內容

  • 關於預設範本的建置流程參數

  • 指定您想要建置的專案

  • 指定您想要建置的平台和組態

  • 指定處理組建的組建代理程式

  • 指定組建代理程式時間限制

  • 執行自動化測試,並啟用測試影響分析

  • 指定基本建置流程參數

  • 指定進階建置流程參數

關於預設範本的建置流程參數

本主題說明如何在以預設範本為基礎的組建中,使用建置流程參數來定義組建。 本主題中的資訊描述應該符合 Visual Studio的功能,只要下列條件成立:

  • 您可以從其中一個Visual Studio 中的流程範本建立Team 專案的工作。

  • 您的小組中沒有人已移除或自訂預設範本。

指定您想要建置的專案

在 [要建置的專案] 方塊中,您可以指定一個或多個要建置的方案或專案。 (若要顯示此方塊,請展開 [必要項] 節點,然後展開 [要建置的項目] 節點)。 您至少必須指定一個方案或專案。

如果您要建置許多相關的專案,通常應該要將它們加入至單一方案,然後在 [要建置的專案] 方塊中指定該方案,而非個別列出每個專案。

在 [要建置的專案] 方塊中,您可以按一下省略符號按鈕 (...) 開啟並使用 [方案/專案] 對話方塊來指定要建置的方案或專案。

若要手動填入 [要建置的專案] 方塊,請指定您想要建置之每個專案或方案的完整版本控制路徑, 並以逗號分隔每個值,如下列範例所示:

$/Features/FeatureA/Server/All Server Projects.sln, $/Features/FeatureA/Client/All Client Projects.sln

重要

請確定每個專案或方案的路徑都是組建定義 [工作區] 索引標籤上所列之其中一個 [原始檔控制資料夾] 值的子系。

指定您想要建置的平台和組態

在 [要建置的組態] 方塊中,您可以指定想要建置的平台和組態。 (若要顯示此方塊,請展開 [必要項] 節點,然後展開 [要建置的項目] 節點)。 例如,您可以在這個方塊中加入 Release|x86,藉以指定此組建應該只建置 C++ 專案 32 位元版本的發行組態。

提示

如果您擁有大型程式碼基底,就可以透過只建置所需的組態和平台,大幅提高組建的處理速度。

如果您將 [要建置的組態] 方塊保留空白,就會建置每個方案或專案中定義的預設組態和平台。

在 [要建置的項目] 方塊中,您可以按一下省略符號按鈕 (...) 開啟並使用 [組態] 對話方塊來指定要建置的項目。 您也可以用手動方式指定它們。

[要建置的組態] 方塊中的每個組態應該會採用下列格式:

組態|平台

您必須取代下列預留位置:

  • Configuration 是一個值,例如 Debug、Release 或 All Configurations。

  • Platform 是一個值,例如 Win32、x86、x64 或 Any CPU。

清單中的組態必須以逗號分隔。

例如,如果您想要同時建置 C# 專案的偵錯和發行組態,就要在 [要建置的組態] 方塊中指定 Debug|Any CPU, Release|Any CPU。

您用於組態和平台的語彙基元必須符合在方案屬性或程式碼專案屬性中設定的語彙基元。 如果它們不相符,您可能會在組建完成時遇到非預期的結果。

指定處理組建的組建代理程式

若要指定用來處理組建的組建代理程式,請依序展開 [進階] 節點和 [代理程式設定] 節點,然後為下列參數指定值:

  • 名稱篩選:您可以篩選用來處理此組建定義的組建代理程式,方法是在此欄位中輸入代理程式的名稱。 您可以藉由 * 指定一組屬性,和 **?**速配字符。 例如,您可以指定 CI* 以指定名稱以字元 CI 開頭的任何代理程式。 符合此準則的代理程式包括 CI、CI1 或 CI_Agent2。

  • 標記篩選:指定一個或多個標記,以確保只有具備相符標記的組建代理程式會執行此組建。 您通常會將標記套用至某些組建代理程式,以保留供特殊目的使用。 例如,您在組建電腦上設定一個專為處理您的閘道簽入組建所設計的組建代理程式。 您將閘道標記套用至此組建代理程式。 最後,您將閘道標記套用至組建定義,使其只能由也以閘道標記加註的代理程式處理。 若要指定標記,請按一下省略符號按鈕 (...)。

    注意事項注意事項

    可用於處理此組建的組建代理程式集,是由您指定給此組建定義的組建控制器所決定。若要修改組建控制器,請按一下 [組建預設值] 索引標籤,然後開啟 [組建控制器] 功能表,再按一下任一組建控制器。

  • 標記比較運算子:按一下這個功能表上的下列其中一個值:

    • MatchExactly:如果您要此組建定義只由那些組建代理程式經由您在 [標記篩選] 方塊中指定的同樣的標記所處理,請按一下這個值。 如果您沒有指定任何標記,任何代理程式都能處理此組建定義。

      提示

      按一下 [MatchExactly],會將此組建定義可用的代理程式限制為僅限那些具有一組完全相符的標記 (位於 [標記篩選] 欄位) 的代理程式。

    • MatchAtLeast:如果您要此組建定義由任何組建代理程式 (至少具有您在 [標記篩選] 方塊中指定的一組相同的標記) 處理,請按一下這個值。 如果您沒有指定任何標記,只有沒有標記的代理程式才能處理此組建定義。

指定組建代理程式時間限制

若要指定時間限制,請依序展開 [進階] 節點、[代理程式設定] 節點,然後指定下表中的參數。

如果想要…

然後設定此參數…

依照下列指引…

指定允許組建代理程式處理組建的最大時間

最長執行時間

以 hh:mm:ss 格式輸入時間範圍值。 例如,如果您指定的值為 04:30:15,而組建代理程式在 4 小時 30 分 15 秒後未完成其工作,則建置將會失敗且具有逾時錯誤。 如果您要提供組建代理程式無限制的時間來處理組建,請指定值 00:00:00。

指定將組建要求指派至組建代理程式所允許的最大時間

最長等待時間

以 hh:mm:ss 格式輸入時間範圍值。 例如,如果您指定的值為 01:30:45,而組建在 1 小時 30 分 45 秒後仍未指派組建代理程式,則建置將會失敗且具有逾時錯誤。 如果您要提供組建控制器無限制的時間來尋找用以處理此組建定義的組建代理程式,請指定值 00:00:00。

執行自動化測試並測試影響分析

您可以設計組建來執行一個或多個自動化測試回合,以及分析程式碼變更對測試的影響。 如需詳細資訊,請參閱在建置流程中執行測試

指定基本建置流程參數

若要成功完成某些較常見的案例,您通常必須修改 [基本] 節點中的建置流程參數。

如果想要…

然後設定此參數…

依照下列指引…

執行一個或多個自動化測試回合

自動化測試

在建置流程中執行測試

自訂用來命名已完成組建的慣例

組建編號格式

您和小組可以將有用的資料載入每個已完成組建的名稱中。 如需詳細資訊,請參閱使用組建編號

若要自訂這個參數,您可以直接在此欄位中輸入文字。 不過,只要按一下省略符號按鈕 (...) 開啟並使用 [BuildNumber 格式編輯器] 對話方塊,即可更輕鬆地修改值並顯示可用的語彙基元。 在這個對話方塊中,按一下 [巨集] 顯示並插入您想要使用的語彙基元。

指定是否要在組建代理程式處理組建之前清除其工作區以及清除方式

清除工作區

按一下這個功能表,選擇其上的其中一個值:

  • 若要在處理組建之前刪除所有現有的輸出和原始程式碼檔案,請選取 [全部]。 如果要編譯流程從多個方面盡可能詳盡地公開建置流程的問題,請使用這個選項。

  • 若要刪除所有現有的輸出,但保留最近組建以來尚未變更的原始程式碼檔案,請選取 [輸出] (執行不含 /all 參數的 tf get)。

  • 若要保留現有的輸出以及最近組建以來尚未變更的原始程式碼檔案,請選取 [] (執行不含 /all 參數的 tf get)。

提示提示
如果建置流程不需要 [所有] 選項執行的額外清理,您可以在指定 [] (最快速的選項) 或 [輸出] 的情況下大幅減少執行建置所需的時間。不過,如果工作區未清除,小組很可能會遺漏某些類型的缺失,例如在重構期間引入工作區。

指定組建記錄的詳細程度

記錄詳細資訊

組建資訊對小組很重要,但記錄過多資訊的建置流程可能導致問題。 這類問題可能包括伺服器存放裝置和 CPU 資源耗用、伺服器效能變慢,以及使用者在用戶端電腦上之建置結果視窗的經驗降低。 您可以控制多少數量的資訊部署必須處理,儲存和顯示。 如需詳細資訊,請參閱管理組建資訊和控制詳細資訊

分析您的程式碼以找出常見的缺失

執行程式碼分析

按一下這個功能表,選擇其上的其中一個值:

  • 若要分析啟用這項功能的每個程式碼專案,請選取 [依照設定]。

  • 若要分析每個程式碼專案,不論這些程式碼專案是否啟用這項功能,請選取 [永遠]。

  • 若要略過程式碼分析,請選取 [永遠不要]。

如需詳細資訊,請參閱下列其中一個主題:

儲存您的符號以啟用歷程偵錯等功能

索引來源發行符號的路徑

您可以設定組建定義來發行符號資料,以啟用歷程偵錯等功能。 如需詳細資訊,請參閱發行符號資料

指定進階建置流程參數

[進階] 節點中提供的建置流程參數是您必須修改才能成功完成某些較不常見案例的參數。

如果想要…

然後設定此參數…

依照下列指引…

指定組建代理程式設定

代理程式設定

指定組建代理程式處理組建, 指定組建代理程式時間限制

測試影響分析

測試影響分析

在建置流程中執行測試

將每個已完成組建與進入程式碼的所有變更集及其相關聯的工作項目連結在一起

關聯變更集與工作項目

在大部分情況下,將這個參數設定為 [True] (預設值) 是最佳做法。 尤其是排程組建 (例如夜間組建) 更是如此,因為您通常會使用成功完成的排程組建來確認修正或執行其他測試。

每個組建定義都會自行維護哪些變更集和工作項目正等候與下一個完成組建產生關聯的記錄。 例如,變更集 382 是由組建 A 和組建 B 所建置。 組建 A 已排入佇列並成功完成。 組建 B 已排入佇列但失敗。 接著,變更集 382 會與組建 A 的成功完成組建和組建 B 的失敗完成組建連結在一起。雖然變更集 382 不會與組建 A 的下一個完成組建連結在一起,不過它會與組建 B 的下一個完成組建連結在一起。

在組建失敗時建立工作項目

在失敗時建立工作項目

如果您想要讓系統在組建失敗時建立工作項目,請將這個參數設定為 [True]。

停用測試:

停用測試:

在建置流程中執行測試

建置原始程式碼的特定版本

取得版本

指定可識別您想要建置之版本的版本規格。

如需版本規格的詳細資訊,請參閱命令列語法

為已編譯為每個完成組建之每個檔案的版本加上標籤

標籤來源

如果您想要讓系統使用標籤來標記每個原始程式碼檔案,請將這個參數設定為 [True]。 此動作可讓您的小組輕鬆地識別已完成組建中所包含之每個檔案的版本。

針對圖層圖表驗證程式碼

MSBuild 引數

在這個參數值中加入下列字串:/p:ValidateArchitecture=true。

如需詳細資訊,請參閱使用圖層圖表驗證程式碼

指定要傳遞至 MSBuild 的命令列引數

MSBuild 引數

如果建置流程需要您將引數傳遞至 MSBuild,請在 [MSBuild 引數] 參數中輸入這些引數。 如需詳細資訊,請參閱MSBuild 命令列參考

指定用來處理組建的 MSBuild 版本的 Bitness

MSBuild 平台

指定下列其中一個值:

  • 如果您想要以與組建代理程式上安裝的 Team Foundation Build Service 相同的 CPU Bitness 來執行 MSBuild,請指定 [自動]。

  • 指定 [X86] 會一律以 32 位元版本的 MSBuild 處理此組建。

    由於 Visual Studio 是做為 32 位元的應用程式執行,因此當執行 64 位元版本 Team Foundation Build Service 的組建代理程式處理您的組建時,可能會發生問題。 指定 [X86] 應該可以解決這類的問題。

  • 指定 [X64] 會一律以 64 位元版本的 MSBuild 處理此組建。

如果指定此值,則應該要確定 (例如使用本主題稍早說明的標記) 組建會由 64 位元組建電腦上裝載的組建代理程式處理。 否則將無法進行建置。

將私用組建排入佇列

私人置放位置

您在組建定義通常不指定這個參數的值。 如需如何手動將私用組建排入佇列的詳細資訊,請參閱將組建排入佇列

方案以組織輸出檔

方案特定組建輸出

如果您想要組織輸出檔的方案,把這些參數設為 True