部署和設定組建代理程式

若要使用 Team Foundation Build,您的小組必須至少使用一個組建代理程式來執行建置流程的處理器密集工作。

兩部組建伺服器

每個組建代理程式都由專屬的單一組建控制器所控制。 組建代理程式可以裝載於裝載其組建控制器的相同組建伺服器上,但這不是必要的,因此在某些情況下,單一組建伺服器可最有效率地滿足小組的需求,以裝載控制多部組建伺服器上之組建代理程式的組建控制器。

組建代理程式會執行包含在 AgentScope 活動中的建置流程步驟。 這些步驟通常包括從版本控制取得檔案、佈建工作區、編譯程式碼、執行測試,以及將檔案重新合併回版本控制中。

確定裝載組建代理程式的組建伺服器有足夠的儲存空間和處理能力,可以在 Team 專案集合上符合程式碼庫及測試的大小和複雜度。 在組建伺服器上,通常每個處理器核心最多只能裝載一個組建代理程式。 您也可以為每個組建代理程式的工作目錄提供專用的單一實體硬碟,來提高效能。

提示

如果您的 Team 專案集合是裝載在 Visual Studio Online 上,而單一標準組建代理程式可以滿足小組的需要時,您可以使用裝載的組建控制器,而不需要部署您自己的組建代理程式。

必要的權限

您必須是組建伺服器上的 Windows Administrators 群組成員,而且是 Team 專案集合上的 Project Collection Build Administrators 群組成員。 請參閱 Team Foundation Server 的權限參考

您想要怎麼做?

建立或修改組建代理程式

從組建伺服器建立或修改組建代理程式

  1. 登入您要設定的組建伺服器

  2. 從 Windows 的 [開始],執行 [Team Foundation 管理主控台]。

    [Team Foundation 管理主控台] 隨即出現。

  3. 在 [Team Foundation 管理主控台] 的樹狀目錄窗格中,展開伺服器的名稱,然後選擇 [組建組態] 節點。

    組建伺服器的相關資訊會出現在內容窗格中。

    如果出現 [設定已安裝的功能 設定已安裝的功能] 訊息,請參閱部署組建伺服器

  4. 在 [組建組態] 頁面上:

    • 若要建立新的組建代理程式,請選擇 [新增代理程式]。

    • 若要修改現有的組建代理程式

      組建代理程式

      選擇 [屬性]。

    [組建代理程式屬性] 對話方塊隨即出現。

若要從 Visual Studio 修改組建代理程式

  1. 在 Visual Studio 中的 Team Explorer:

    1. 如果您尚未連接至 Team 專案集合中的 Team 專案,請連接到 Team 專案

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

  2. 在 [組建] 頁面中,選擇 [動作],然後選擇 [管理組建控制器]。

    [管理組建控制器] 對話方塊隨即出現。

    管理組建控制器對話方塊

  3. 選取您想要修改的組建代理程式,然後選擇 [屬性]。

    [組建代理程式屬性] 對話方塊隨即出現。

組建代理程式屬性對話方塊

顯示名稱描述:輸入名稱和描述以協助小組成員輕鬆識別組建代理程式。

控制器:選取要控制此組建代理程式的組建控制器。 組建控制器可以在與此組建代理程式相同的組建伺服器上執行,也可以在不同的組建伺服器上執行。

如需如何設定組建代理程式的詳細資訊,請參閱以下各節。

安裝 Visual Studio 和其他軟體以啟用編譯和其他功能

您必須在組建代理程式上安裝您的小組用於開發電腦的 Visual Studio 版本。 請參閱 安裝 Visual Studio。 您必須同時安裝已安裝在開發電腦上,以及在建置應用程式時所需的任何其他軟體和元件。

指定工作目錄

您可以指定組建代理程式用來讀取或寫入檔案的工作目錄。 例如,代理程式會將原始程式檔複製到此資料夾的子目錄中,如果建立二進位檔,則會儲存在此資料夾的其他子目錄中。

提示

您可以為每個組建代理程式的工作目錄提供專用的單一實體硬碟,來提高效能。

使用工作目錄語彙基元

雖然您可以為 [工作目錄] 屬性指定常值路徑 (例如,c:\temp\build\),但是更簡便的長久之計則是使用語彙基元來指定路徑。 您可以使用兩類語彙基元:

  • 環境變數
    環境變數包含系統環境和已登入之使用者的相關資訊。 您可能最常使用的變數是 SYSTEMDRIVE,但是您也可以針對某些情況使用像 USERNAMEHOMEPATH 這樣的變數。

    提示

    若要在您的組建伺服器上列出環境變數,請開啟命令提示字元並輸入 set

  • Team Foundation Build 變數
    您可以在組建代理程式工作目錄中使用下列變數:

    • $(BuildAgentId):自動產生的整數,可唯一識別 Team 專案集合內的組建代理程式。

    • $(BuildAgentName):組建代理程式的 [顯示名稱]。

    • $(BuildDefinitionId):自動產生的可唯一識別 Team 專案集合內組建定義的整數。

    • $(BuildDefinitionPath):用反斜線分隔的 Team 專案名稱和組建定義名稱。

工作目錄範例

例如,您可能擁有名為 BuildBot3 的組建代理程式。 您已在稱為 CoolApp 的 Team 專案中定義稱為 NightlyBuild 和 WeeklyBuild 的兩個組建。 您在 [工作目錄] 方塊中指定下列值:$(SystemDrive)\TeamBuilds\$(BuildAgentName)\$(BuildDefinitionPath)。 因此,BuildBot3 組建代理程式會建立並使用下列兩個工作目錄:

C:\TeamBuilds\BuildBot3\CoolApp\NightlyBuild

C:\ TeamBuilds\BuildBot3\CoolApp\WeeklyBuild

確保工作目錄的路徑不會過長

您指定的工作目錄不得造成組建代理程式產生長度超過 259 字元的實體路徑。 否則,您的組建可能會失敗並記錄此錯誤:TF10128: The path PhysicalPath contains more than the allowed 259 characters. Type or select a shorter path.

若要解決此問題,請指定會產生較短實體路徑的工作目錄。 例如,您可以指定 $(HOMEDRIVE)\bld\$(BuildAgentID)\$(BuildDefinitionID),這會產生類似下列路徑的工作目錄:c:\bld\3\2\

工作目錄中建立的子目錄

組建代理程式會在此路徑下建立下列子目錄並在其中工作。

子目錄

用於儲存下列類型的檔案…

Sources

由組建代理程式讀取的檔案,例如原始程式檔。 您可以在每一個組建定義的 [工作區] 設定中指定它下載的檔案。 請參閱 使用組建工作區

Binaries

由組建代理程式編譯的檔案,例如已編譯的應用程式檔案。

TestResults

由組建代理程式執行的任何測試產生的檔案。

可讓組建代理程式執行測試

您可以定義會執行一個或多個自動化測試回合的建置流程。

重要

在許多類型的測試和測試作業中,您必須在組建代理程式上安裝與小組在其開發電腦上使用的相同 Visual Studio 版本。請參閱 安裝 Visual Studio

組建代理程式可以執行:

指派標籤以表示組建代理程式功能或用途

隨著組建系統規模的擴增,您可能需要定義特定的組建代理程式。 當組建代理程式具有特殊功能或者用於特定用途時,您應該指派一個或多個標籤給該代理程式。 這樣一來,當小組成員建立需要特定種類之組建代理程式的組建定義時,他們可以在組建定義中指定標籤。

您可以從組建代理程式屬性對話方塊指派標籤,如上所述。 您可以接著將標籤套用至組建定義

下表提供標籤名稱的範例和標籤名稱可以代表的組建代理程式功能。

您可以套用下列標籤 …

識別可以進行下列操作的組建代理程式...

x86

編譯 32 位元應用程式

x64

編譯 64 位元應用程式

bvt

執行 BVT 測試,這是由您的夜間 BVT 組建執行。

WindowsStore

編譯和測試 Windows 市集應用程式

IIS

編譯 ASP.NET Web 應用程式,然後將其放置並裝載於執行組建代理程式的組建電腦上

互動式

執行需要在以互動模式執行之組建伺服器上使用代理程式的工作。

您可以將一個以上的標籤套用至組建代理程式。 例如,您可以建立具有標籤 x86 和 Release 的組建代理程式,來指出設定代理程式編譯 32 位元應用程式的 Release 組態。

如果您在同一個組建伺服器上執行多個組建代理程式,這些代理程式可能會具有相同的功能。 因此,您可能會想要將相同的標籤套用至該組建伺服器上的所有組建代理程式。

移除組建代理程式

  1. 如先前在建立或修改組建代理程式中所述,在 Visual Studio 中開啟 [管理組建控制器] 對話方塊。

  2. 選取您想要移除的組建代理程式,然後選擇 [移除]。

提示

當您登入組建伺服器時,您也可以使用 Team Foundation 管理主控台來移除組建代理程式。

後續步驟