Share via


從組建觸發版本

在您使用 Team Foundation Build 來建置應用程式時,自動啟動發行。 您可以選擇要從哪一個發行流程的階段開始。 若要從組建觸發發行,您必須設定建置流程和發行路徑。

如果您尚未建立發行路徑,請移至這裡進行相關作業。

此外,如果您尚未設定建置系統,請立即設定

設定您的建置流程

  1. 如果您沒有編輯組建定義的權限,請立即取得權限

  2. 在 Visual Studio 的 Team Explorer 中,連接至您想要使用的 Team 專案 (鍵盤:Ctrl + 0、C)。

  3. 組建圖示 [組建] 頁面 (鍵盤:Ctrl + 0、B) 上,建立或編輯組建定義。

  4. 在組建定義的 [流程] 索引標籤上,選擇您想要用於此版本的組態 (例如:偵錯或發行)。 將 [發行組建] 設定為 True。 選擇您要針對發行觸發的特定階段,或者,想要從第一個階段開始時,請將此欄位留白。

    發行組建的引數

    如果沒有出現 [發行] 區段:

    • 問:我使用了預設範本。 我應該針對 Release Management 使用哪一個建置流程範本?如何將它加入至 TFS?

    • 問:我使用了升級範本。 我應該針對 Release Management 使用哪一個建置流程範本?

    • 問:我使用了自訂建置流程範本。 如何加入觸發發行的工作流程邏輯?

    如果您的元件組態檔會根據目標環境而需要不同的值,可以將組態檔語彙基元化。

  5. 指定建置流程所需的任何其他設定,然後儲存組建定義。

設定您的發行範本

  1. 如果您尚未將 Visual Studio 2013 Release Management 用戶端安裝在組建伺服器上,請立即安裝。 設定 Release Management 用戶端以連接到 Release Management 伺服器。

    在組建伺服器上安裝用戶端之後,請重新啟動組建服務。 您可以從 [Team Foundation Server 管理主控台] 進行此作業。

  2. 在您的發行範本中,選擇您已設定為觸發組建的組建定義,然後選取啟用建置流程以觸發發行的核取方塊。

    發行範本的 [屬性] 頁面

    如果沒有出現 [組建定義] 選項,您就必須將 TFS 連接加入至 Release Management 用戶端 (在 [管理] 區段的 [管理 TFS] 索引標籤中,加入連接)。

    觸發發行之後,它就會繼續進行已選取階段中的步驟。 如果您沒有將這個階段的 [接受步驟] 和 [部署步驟] 設定為 [自動化的],系統就不會啟動發行。 您必須在發行路徑中,將這些步驟標記為自動化。

問與答

ms181355.collapse_all(zh-tw,VS.120).gif問:我使用了預設範本。我應該針對 Release Management 使用哪一個建置流程範本?如何將它加入至 TFS?

**答:**如果您要使用預設範本,只要將它取代成對應的發行管理流程範本即可。

  1. 如果您沒有參與檔案或編輯組建定義的權限,請立即取得權限

  2. 在 Visual Studio 的 Team Explorer 中,連接至您想要使用的 Team 專案 (鍵盤:Ctrl + 0、C)。

  3. 磁碟機:\Program Files (x86)\ Microsoft Visual Studio 12.0\ReleaseManagement\bin 資料夾中,找出您需要的範本。 或從這篇部落格文章所附加的 Zip 檔案,將範本下載到這個目錄。

    • TFS 2013

      • TFVC 圖示 TFVC:ReleaseTfvcTemplate.12.xaml

      • Git 圖示 Git:ReleaseGitTemplate.12.xaml

    • TFS 2012:ReleaseDefaultTemplate.11.1.xaml

    • TFS 2010:ReleaseDefaultTemplate.xaml

  4. 將範本加入至版本控制。 建議您最好將範本放置於 Team 專案的 BuildProcessTemplates 資料夾中。

  5. 組建圖示 [組建] 頁面 (鍵盤:Ctrl + 0、B) 中,建立或編輯組建定義。

  6. 在 [流程] 索引標籤中,選擇 [新增],選取要用於 [建置流程檔] 的範本 (您應該能夠瀏覽並選取剛才加入的範本)。

ms181355.collapse_all(zh-tw,VS.120).gif問:我使用了自訂建置流程範本。如何加入觸發發行的工作流程邏輯?

**答:**請將提供工作流程邏輯的區段加入至您的自訂建置流程範本。 您可以在這裡下載包含這些區段的程式碼片段檔案。 使用這些程式碼片段,將下列引數加入至您的建置流程範本:ConfigurationsToRelease、ReleaseBuild、ReleaseTargetStage 和 DropBuild。

儲存建置流程範本。 如果您使用了 Team Foundation 版本控制,請將它簽入。 如果您使用了 Git,請認可並推送建置流程範本。

ms181355.collapse_all(zh-tw,VS.120).gif問:我使用了升級範本。我應該針對 Release Management 使用哪一個建置流程範本?

**答:**請在這裡了解必要的步驟。

ms181355.collapse_all(zh-tw,VS.120).gif問:我可以將應用程式的元件部署至不同的電腦嗎?

**答:**可以。請透過 Release Management 用戶端建立元件,並將元件加入至您的發行範本。

然後,您就可以將這些元件加入至組建。

將元件加入至發行範本

顯示 [元件] 視窗時,請按兩下您想要加入的元件。

您所加入的每個元件都必須設定為 [使用應用程式建置] 或 [外部建置]。

元件頁面、[來源] 索引標籤

[組建置放位置] 中的 '\' 表示組建位於置放資料夾的根目錄。

ms181355.collapse_all(zh-tw,VS.120).gif問:我可以使用哪些工具來部署元件?

**答:**對於您所定義的每個元件,您可以從 [部署] 索引標籤中選取要使用的工具。 若要進一步了解每項工具,請移至這裡

元件頁面、[部署] 索引標籤

將 [引數] 取代成部署這個元件專用的資訊。

若要使用自訂工具,請先透過 [詳細目錄] 頁面加入工具,然後再從 [部署] 索引標籤中選取。

請確定在部署階段,封裝位置內必須要有命令所參考的所有檔案。

ms181355.collapse_all(zh-tw,VS.120).gif問:為什麼我的發行尚未啟動?

部分可能問題如下:

  • 您將組建設定為觸發發行 (發行組建=True),但是沒有針對發行範本選取 [可否從組建觸發發行?] 核取方塊。 實際上,這樣會導致組建失敗,然後造成發行無法啟動。

  • 您將發行範本設定為使用某個組建定義,但是該組建定義並未設定為觸發發行 (發行組建=False),或者沒有包含正確的發行邏輯。

  • 發行範本包含任何設定為獨立建置的元件。

  • 如果您沒有針對選取要從發行觸發的階段,將 [接受步驟] 和 [部署步驟] 設定為 [自動化的],發行就不會啟動。 您必須針對這個發行路徑,將這些步驟設定為自動化。

  • 您尚未將 Release Management 用戶端安裝在執行 Team Foundation Build 伺服器的電腦上。

  • 完成部署所需的時間超過 10 分鐘。 您可以在 [管理] 索引標籤的 [設定] 頁面中變更指派給 [TFS 觸發的部署逾時] 的值。

ms181355.collapse_all(zh-tw,VS.120).gif問:如何處理根據目標環境而需要不同值的組態檔?

**答:**請使用語彙基元化的組態檔。

在您的方案中,針對每個在不同環境下需要不同值的組態檔,建立該檔案的語彙基元化版本。

例如,如果您的方案包含標示為 web.config 的檔案,請建立該檔案的複本並將它標示為 web.config.token。 您的 web.config 檔案不會變更,而且在本機執行應用程式時,系統會使用這個檔案。 web.config.token 包含的是語彙基元而非實際值。

假設,如果您的 web.config 檔案包含下列內容:

<add key="SMTPHostServer" value="mysmtp.myserver.domain"/>

那麼,您的 web.config.token 檔案將會包含下列內容,其中 SMTPHostServer 是語彙基元:

<add key="SMTPHostServer" value="SMTPHostServer"/>

請將本機檔案和語彙基元化的檔案保持同步。

ms181355.collapse_all(zh-tw,VS.120).gif問:如何定義系統應該掃描哪些檔案,以便將語彙基元取代成變數?

答:針對您所定義的每個元件,您可以在 [組態變數] 索引標籤上指定副檔名篩選。

元件、[組態變數] 索引標籤

您指定給元件的部署代理程式就會使用模式比對來掃描需要將語彙基元取代成變數的檔案集。 請使用分號 (;) 來分隔兩個或多個副檔名。