使用及開發自訂建置流程活動

來自 C Sharp 活動的 "Hello World"

在您建立自訂建置流程範本後,可以使用 Windows Workflow 指示和內建 Team Foundation Build (TFBuild) 活動實作自己的商務邏輯。 如果這些工具不夠,您可以使用協力廠商的活動,必要時也可以在 CodeActivity 實作自己的 .NET Framework 程式碼。

提示

如果可以使用 Windows 批次檔或 PowerShell 指令碼撰寫自訂建置流程功能的程式碼,則可以上傳指令碼並當做建置流程的一部分來執行。這個方法比建立自訂建置流程可能更快速且更容易。請參閱 在建置流程中執行指令碼

  • 建立自訂建置流程活動

  • 編輯建置流程範本

  • 上傳自訂建置流程

    • TFVC 圖示 在 TFVC Team 專案中上傳並啟用自訂建置流程

    • Git 圖示 在 Git Team 專案中上傳並啟用自訂建置流程

  • 啟用自訂建置流程

  • 執行組建

  • 問與答

組建摘要中的 "Hello World"

建立自訂建置流程活動

重要

在開始之前,請先取得一份範本並放入程式碼專案中。如果您還沒這麼做,這裡說明如何操作

您應該用和您建置流程範本相同的方案開發建置流程活動。透過這種方式,當您需要在流程範本中使用其中一個活動時,即可在工作流程設計工具箱中找到該活動。不過,您不可以將活動的原始程式碼和建置流程範本儲存在同一個程式碼專案中。

  1. 將新的 C# 或 Visual Basic 程式碼專案加入至包含建置流程範本程式碼專案的方案。

    BuildProcessSource 方案的新專案

    新增專案

  2. 將下列參考加入至新的程式碼專案:

    如何將這些參考加入至程式碼專案?

    儲存程式碼專案。

  3. 將新的活動加入至專案。

    原始程式碼專案的新增項目

    加入新項目

  4. 實作您的 CodeActivity,例如,Hello.cs:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Activities;
    using Microsoft.TeamFoundation.Build.Workflow.Activities;
    using Microsoft.TeamFoundation.Build.Client;
    using Microsoft.TeamFoundation.Build.Workflow.Tracking;
    
    namespace BuildProcessSource
    {
        // enable the build process template to load the activity
        [BuildActivity(HostEnvironmentOption.All)]
        // keep the internal activity operations from appearing in the log
        [ActivityTracking(ActivityTrackingOption.ActivityOnly)]
        public sealed class Hello : CodeActivity
        {
            // Define an activity input argument of type string
            public InArgument<string> SayHelloTo { get; set; }
    
            // If your activity returns a value, derive from CodeActivity<TResult>
            // and return the value from the Execute method.
            protected override void Execute(CodeActivityContext context)
            {
                // Obtain the runtime value of the Text input argument
                string text = context.GetValue(this.SayHelloTo);
    
                // Add our default value if we did not get one
                if (text == null || text == "")
                {
                    text = "World";
                }
    
                // Write the message to the log
                context.TrackBuildWarning("Hello " + text, BuildMessageImportance.High);
            }
        }
    }
    

    您不需要 Activity1.xaml 檔案,因此可以將它刪除。

  5. 在 Visual Studio 中建置您的方案 (鍵盤:Ctrl + Shift + B)。

當您完成時,您的方案應該看起來像這樣:

自訂建置流程方案的範例

編輯建置流程範本

從您的方案,將活動拖曳到建置流程範本中即可進行編輯。 將活動加入至範本後,請設定其屬性 (鍵盤:F4)。

從解決方案編輯建置流程範本

當您完成時,請儲存範本。

上傳自訂建置流程

在您可以定義使用自訂建置流程範本和活動的組建之前,必須先上傳和啟用它們。

  • TFVC 圖示 在 TFVC Team 專案中上傳並啟用自訂建置流程

  • Git 圖示 在 Git Team 專案中上傳並啟用自訂建置流程

在 TFVC Team 專案中上傳自訂建置流程

TFVC 圖示 TFVC Team 專案中:

  1. 確定您已建置方案 (鍵盤 Ctrl + Shift + B)。

  2. 連接 (鍵盤:Ctrl + 0、C) 至您計劃用於儲存建置流程來源的 Team 專案。

  3. 原始檔控制總管,將項目加入至包含活動程式碼專案的資料夾。

    原始檔控制總管

  4. 瀏覽至包含 .dll 檔案的資料夾並選取該檔案。 例如 C:\Users\YourName\Source\Workspaces\FabrikamTFVC\BuildProcessTemplates\BuildProcessSource\Source\bin\Debug。

    將建置流程二進位檔加入至 TFVC 版本控制

  5. 完成加入檔案的程序。

    將建置流程二進位檔加入至 TFVC 版本控制

  6. 簽入變更。

    暫止的變更

在 Git Team 專案中上傳自訂建置流程

Git 圖示 Git Team 專案中:

  1. 重要事項:

    • 儲存二進位 (尤其是對大型檔案所做的許多修改) 可快速擴充 Git 儲存機制的大小。 建議您將自訂建置流程二進位檔和用於建置應用程式的程式碼,分別儲存在不同的儲存機制。 您可以為此建立個別的 Team 專案,也可以在現有的 Team 專案中建立其他儲存機制

    • 您必須將二進位檔儲存在 Git 儲存機制的子資料夾中。 如果您嘗試在根資料夾中使用二進位檔,可能會被找不到 git 分支錯誤訊息封鎖。

  2. 確定您已建置方案 (鍵盤 Ctrl + Shift + B)。

  3. 連接 (鍵盤:Ctrl + 0、C) 至您計劃用於儲存建置流程來源的 Team 專案。

  4. 開啟 Git 命令提示字元。

    從 [變更] 頁面開啟命令提示字元

    問:我打不開命令提示字元。該怎麼做?答: 啟用 Git 命令提示字元

  5. 使用 Git 命令提示字元加入 .dll 檔。 例如:

    cd c:\users\YourName\source\repos\BuildProcesses\BuildProcessSource\Source\bin\Debug
    
    git add Source.dll -f
    
  6. 認可變更。

    [變更] 頁面上的 [認可] 按鈕

  7. 同步或推送認可。

    [變更] 頁面上的 [同步] 連結

    [未同步處理的認可] 頁面上的 [同步] 按鈕和 [推送] 連結

啟用自訂建置流程

您必須先將組建控制器指向上傳至 TFS 的二進位檔,並選取組建定義中的建置流程範本,才能執行自訂建置流程。

  1. 在 [組建] 頁面 (鍵盤:Ctrl + 0、B) 上,選擇 [動作],然後選擇 [管理組建控制器]。

  2. 在 [管理組建控制器] 對話方塊中,反白顯示您要用來執行這個建置流程的控制器,並選擇 [屬性]。

    管理組建控制器對話方塊

  3. 指定自訂組件的版本控制路徑。

    組建控制器屬性對話方塊

    VisualStudioEllipsesButton 螢幕擷取畫面 瀏覽至資料夾,該資料夾為您在上述步驟中上傳建置流程之資料夾的上階。

    • TFVC 圖示 TFVC 範例:$/FabrikamTFVC/BuildProcessTemplates/BuildProcessSource/Source/bin/Debug

    • Git 圖示 Git 範例:BuildProcessSource/Source/Bin/Debug

      顯示 Git 值的 [瀏覽] 對話方塊

      系統會自動將您輸入的值轉換為 vstfs 路徑。 例如:vstfs:///Git/VersionedItem/FabrikamGit/BuildProcesses/master/BuildProcessSource/Source/Bin/Debug。

      自訂組件的版本控制路徑

  4. 如果您並未這麼做,請建立或修改組建定義,並選取您的自訂建置流程範本

    具有建置流程範本的組建定義

執行組建

將組建排入佇列結果看起來應該類似這樣:

組建摘要中的 "Hello World"

問與答

問:我沒有權限,所以被系統封鎖了。該如何取得?

答:Team Foundation Server 的權限參考

問:如何加入我需要的參考才能使用 TFBuild 流程?

**答:**使用參考管理員加入參考

檢視程式碼專案參考並開啟 參考管理員

[參考] 內容功能表

[參考管理員] 對話方塊

瀏覽至 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ReferenceAssemblies\v2.0,然後選取並加入:

[選取要參考的檔案] 對話方塊

[參考管理員] 對話方塊

問:我的自訂建置流程為何會發生錯誤?

答: 一些常見的錯誤原因

問:何謂 Windows Workflow Foundation?如何使用?

答: Windows Workflow Foundation

問:如何進一步了解內建活動?

答: Team Foundation Build 活動

問:哪裡可以取得建置流程範本、工作流程活動和指令碼?

答: Community TFS Build 擴充功能

問:如何進一步了解開發自訂建置流程的方法?

答: 組織化解答:自訂 Team Foundation Build 流程