共用方式為


設定和自定義建置工作

備註

自 2022 年 12 月 31 日起,Microsoft安全性程式代碼分析 (MSCA) 延伸模組已淘汰。 MSCA 被 Microsoft Security DevOps Azure DevOps 擴充功能 取代。 請遵循 設定 中的指示來安裝和設定擴充功能。

本文詳細說明每個建置工作中可用的組態選項。 本文會從安全性程式代碼分析工具的工作開始。 以後續處理工作結束。

反惡意軟體掃描任務

備註

反惡意代碼掃描器建置工作需要啟用 Windows Defender 的組建代理程式。 裝載的Visual Studio 2017和更新版本會提供這類代理程式。 建置工作不會在Visual Studio 2015裝載的代理程式上執行。

雖然無法在這些代理程式上更新簽章,但簽章應該一律少於三個小時。

工作設定的詳細數據會顯示在下列螢幕快照和文字中。

設定反惡意代碼掃描器建置工作

在螢幕快照的 [ 類型 ] 列表框中,已選取 [基本 ]。 選取 [自定義 ] 以提供自訂掃描的命令行自變數。

Windows Defender 會使用 Windows Update 用戶端來下載及安裝簽章。 如果組建代理程式上的簽章更新失敗, HRESULT 錯誤碼可能來自 Windows Update。

如需有關 Windows Update 錯誤及其緩解方法的詳細資訊,請參閱 依元件的 Windows Update 錯誤碼 和 TechNet 文章 Windows Update Agent - 錯誤碼

如需此工作 YAML 設定的相關信息,請查看我們的 反惡意代碼 YAML 選項

BinSkim 任務

備註

您必須先符合下列其中一個條件,才能執行 BinSkim 任務:

  • 您的組建會從受控程式碼產生二進位元檔案。
  • 您有已提交的二進位檔案,想要使用 BinSkim 進行分析。

工作設定的詳細數據會顯示在下列螢幕快照和清單中。

設定 BinSkim 建置工作

  • 將組建組態設為 [偵錯],以便產生 .pdb 偵錯檔案。 BinSkim 會使用這些檔案將輸出二進位檔中的問題對應回原始程式碼。
  • 若要避免研究及建立您自己的命令行:
    • 在 [ 類型] 列表中,選取 [ 基本]。
    • 在 [ 函式 ] 列表中,選取 [ 分析]。
  • [目標] 中,輸入檔案、目錄或篩選模式的一或多個規範。 這些指定符會解析為用於分析的一個或多個二進位檔案:
    • 多個指定的目標必須以分號分隔(;)。
    • 規範可以是單一檔案或包含通配符。
    • 目錄規格必須一律以 \*結尾。
    • 範例:
           *.dll;*.exe
           $(BUILD_STAGINGDIRECTORY)\*
           $(BUILD_STAGINGDIRECTORY)\*.dll;$(BUILD_STAGINGDIRECTORY)\*.exe;
  • 如果您在 [類型] 清單中選取 [命令行],則必須執行 binskim.exe:
    • 請確定 binskim.exe 的第一個參數是動詞分析,然後接著一個或多個路徑指定。 每個路徑可以是完整路徑或相對於來源目錄的相對路徑。
    • 多個目標路徑必須以空格分隔。
    • 您可以省略 /o/output 選項。 輸出值會為您新增或取代。
    • 標準命令行組態如下所示。
           analyze $(Build.StagingDirectory)\* --recurse --verbose
           analyze *.dll *.exe --recurse --verbose

備註

如果您指定目標的目錄時,尾端的 \* 符號非常重要。

如需 BinSkim 命令行自變數、依標識符排序的規則或結束代碼的詳細資訊,請參閱 BinSkim 使用者指南

如需此工作 YAML 設定的相關信息,請檢查 我們的 BinSkim YAML 選項

認證掃描任務

工作設定的詳細數據會顯示在下列螢幕快照和清單中。

設定認證掃描器建置工作

可用的選項包括:

  • 顯示名稱:Azure DevOps 工作的名稱。 預設值為 [執行認證掃描器]
  • 工具主要版本:可用的值包括 CredScan V2CredScan V1。 我們建議客戶使用 CredScan V2 版本。
  • 輸出格式:可用的值包括 TSVCSVSARIFPREfast
  • 工具版本:我們建議您選取 [最新]。
  • 掃描資料夾:要掃描的存放庫資料夾。
  • 搜尋工具檔案類型:尋找用於掃描的搜尋程式檔案的選項。
  • 隱藏檔案JSON 檔案可以隱藏輸出記錄檔中的問題。 如需抑制情境的詳細資訊,請參閱本文的常見問題一節。
  • 詳細信息輸出:顧名思義。
  • 批次大小:用來執行認證掃描器的並行線程數目。 預設值為 20。 可能的值範圍從 1 到 2,147,483,647。
  • 比對逾時:放棄檢查之前,嘗試搜尋程式比對所花費的時間以秒為單位。
  • 檔案掃描讀取緩衝區大小:讀取內容時所使用的緩衝區大小,以位元組為單位。 默認值為 524,288。
  • 檔案掃描讀取位元組上限:內容分析期間要從檔案讀取的最大位元元組數目。 默認值為 104,857,600。
  • 控制項選項>執行此工作:指定工作何時執行。 選取 [自定義條件 ] 以指定更複雜的條件。
  • 版本:Azure DevOps 內的建置工作版本。 此選項不常使用。

如需此工作 YAML 設定的相關信息,請查看我們的 認證掃描器 YAML 選項

Roslyn 分析器任務

備註

在執行 Roslyn Analyzers 工作之前,您的建置必須符合下列條件:

  • 您的組建定義包含內建 MSBuild 或 VSBuild 建置工作,以編譯 C# 或 Visual Basic 程式代碼。 分析器工作依賴內建工作的輸入和輸出,以啟用 Roslyn 分析器來執行 MSBuild 編譯。
  • 執行此建置工作的組建代理程式已安裝Visual Studio 2017 15.5版或更新版本,使其使用編譯程式2.6版或更新版本。

工作設定的詳細數據會顯示在下列清單和附註中。

可用的選項包括:

  • 規則集:值是 SDL 必要SDL 建議或您自己的自定義規則集。
  • 分析器版本:建議您選取 [最新]。
  • 編譯程式警告隱藏檔案:文本檔,其中包含隱藏的警告標識符清單。
  • 控制項選項>執行此工作:指定工作何時執行。 選擇 [自定義條件 ] 以指定更複雜的條件。

備註

  • Roslyn Analyzers 與編譯程式整合,而且只能在編譯 csc.exe 中執行。 因此,此工作需要重新執行或重複執行先前在組建中執行的編譯程序命令。 此重新執行或運行是藉由查詢 Azure DevOps(先前稱為 Visual Studio Team Services)的 MSBUILD 建置任務記錄來完成。

    工作沒有其他方法可從組建定義可靠地取得 MSBuild 編譯命令行。 我們考慮新增一個自由格式文本框,以允許使用者輸入命令行。 但是,很難讓這些命令列 up-to-date,並與主要組建同步。

    自定義組建需要重新執行整個命令集,而不只是編譯程式命令。 在這些情況下,啟用 Roslyn 分析器並不簡單或可靠。

  • Roslyn 分析器會與編譯程式整合。 若要叫用,Roslyn 分析器需要編譯。

    這個新的建置工作是藉由重新編譯已建置的 C# 專案來實作。 新工作只會使用與原始工作相同的組建或組建定義中的 MSBuild 和 VSBuild 建置工作。 不過,在此情況下,新工作在啟用了 Roslyn Analyzers 的情況下使用它們。

    如果新工作在與原始工作的相同代理程式上執行,新工作的輸出會覆寫來源資料夾中的原始工作的輸出。 雖然組建輸出相同,但建議您執行 MSBuild、將輸出複製到成品暫存目錄,然後執行 Roslyn Analyzers。

如需有關 Roslyn 分析器任務的更多資源,請查看 基於 Roslyn 的分析器

您可以在 NuGet 頁面 Microsoft.CodeAnalysis.FxCopAnalyzers 中找到此建置工作所安裝及使用的分析器套件。

如需此工作 YAML 設定的相關信息,請查看 Roslyn Analyzers YAML 選項

TSLint 任務

如需 TSLint 的詳細資訊,請移至 TSLint GitHub 存放庫

備註

如您所知, TSLint GitHub 存放庫首頁指出 TSLint 將在 2019 年某個時候淘汰。 Microsoft正在調查 ESLint 作為替代工作。

如需此工作 YAML 設定的相關信息,請查看 我們的 TSLint YAML 選項

發佈安全分析日誌任務

工作設定的詳細數據會顯示在下列螢幕快照和清單中。

設定發佈安全性分析記錄建置工作

  • 成品名稱:任何字串標識碼。
  • 成品類型:根據您的選擇,您可以將記錄發佈至 Azure DevOps Server 或組建代理程式可存取的共用檔案。
  • 工具:您可以選擇保留特定工具的記錄,也可以選取 [ 所有工具 ] 來保留所有記錄。

如需此工作 YAML 設定的相關信息,請參閱發佈 安全性記錄 YAML 選項

安全性報告工作

安全性報告設定的詳細數據會顯示在下列螢幕快照和清單中。

設定安全性報告建置工作

  • 報告:選取任何 管線控制台TSV 檔案Html 檔案格式 。 系統會為每個選取的格式建立一個報表檔案。
  • 工具:選取組建定義中您想要偵測到問題摘要的工具。 針對選取的每個工具,可能會有一個選項可以選取您只看到錯誤,或在摘要報告中同時看到錯誤和警告。
  • 進階選項:如果沒有選取其中一個工具的記錄,您可以選擇記錄警告或錯誤。 如果您記錄錯誤,工作就會失敗。
  • 基底記錄資料夾:您可以自定義要找到記錄的基底記錄資料夾。 但通常不會使用這個選項。

如需此工作 YAML 設定的相關信息,請查看我們的 安全性報告 YAML 選項

分析後工作

工作設定的詳細數據會顯示在下列螢幕快照和清單中。

設定分析後建置工作

  • 工具:選取您要有條件地插入建置中斷之組建定義中的工具。 針對選取的每個工具,可能會有一個選項讓您選擇是否只在發生錯誤時中斷,或在發生錯誤和警告時中斷。
  • 報表:您可以選擇性地撰寫造成建置中斷的結果。 結果會寫入 Azure DevOps 主控台視窗和記錄檔。
  • 進階選項:如果沒有選取其中一個工具的記錄,您可以選擇記錄警告或錯誤。 如果您記錄錯誤,工作就會失敗。

如需此工作 YAML 設定的相關信息,請查看 我們的 Post Analysis YAML 選項

後續步驟

如需 YAML 型設定的相關信息,請參閱我們的 YAML 組態指南

如果您有關於安全性程序代碼分析延伸模組和所提供工具的進一步問題,請參閱 我們的常見問題頁面