共用方式為


用來自訂建置工作的 YAML 組態選項

注意

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

本文列出每個建置工作中可用的所有 YAML 組態選項。 本文從安全性程式碼分析工具的工作開始。 到後處理工作結束。

反惡意程式碼掃描器工作

InputType 型別 適用於 必要 預設值 選項 (適用於挑選清單) 說明
InputType pickList always True 基本 基本、自訂
ScanType pickList InputType = Basic True CustomScan CustomScan、FullSystemScan、QuickScan、YourConfiguredScan 要用於 AntiMalware 掃描的掃描類型。
FileDirPath filePath ScanType = CustomScan True $(Build.StagingDirectory) 指出要掃描的檔案或目錄。
DisableRemediation boolean ScanType = CustomScan False true 核取時:1) 會忽略檔案排除項目。 2) 會掃描封存檔案。 3) 偵測之後不會套用動作。 4) 偵測之後不會寫入事件記錄檔項目。 5) 自訂掃描的偵測不會顯示在使用者介面中。 6) 主控台輸出會顯示自訂掃描中的偵測清單。
BootSectorScan boolean ScanType = CustomScan False false 如果已核取,則會啟用開機磁區掃描。
引數 字串 InputType = Custom True -Scan -ScanType 3 -DisableRemediation -File $(Build.StagingDirectory) 命令列引數,其中 -File 的引數是絕對路徑,或是您組建代理程式上預先定義 $(Build.StagingDirectory) 的相對路徑。 注意:如果您未提供 -File 的引數作為最後的引數,則會預設為 $(Build.StagingDirectory)。 您也可以自行提供 MpCmdRun.exe 工具允許的引數。

如需此工具命令列引數的詳細資訊,請在 [引數] 欄位中輸入 -h-? 並執行建置工作。
EnableServices boolean always True false 如果已核取,則會嘗試啟用 Windows Update 的必要服務,以防停用。
注意:請確定群組原則不會停用服務,而且此組建執行所在的帳戶具有系統管理員權限。
SupportLogOnError boolean always True false 如果核取,則會收集支援檔案,以在發生錯誤時進行診斷。 這可能需要數分鐘的時間。
注意:請確定此組建執行所在的帳戶具有系統管理員權限。
TreatSignatureUpdateFailureAs pickList always True 警告 錯誤、標準、警告 在執行階段無法更新簽章時所使用的記錄層級。 當設定為 [錯誤] 時,更新簽章失敗將會讓建置工作失敗。 請注意,簽章更新在裝載的組建代理程式上通常會失敗,即使簽章可能相對是最新的 (少於 3 小時)。
SignatureFreshness pickList always True UpToDate OneDay、ThreeDays、TwoDays、UpToDate AntiMalware 簽章允許的最大存留期。 如果簽章無法更新且比此值還舊,建置工作會根據 [驗證簽章存留期為] 欄位中的選取值來運作。 注意:如果您選擇 [最新],允許的簽章最多 3 小時。
TreatStaleSignatureAs pickList always True 錯誤 錯誤、標準、警告 簽章存留期早於選取的 AntiMalware 簽章存留期時使用的記錄層級。 過期的簽章可能會被視為警告資訊,以繼續進行 AntiMalware 掃描,但是不建議這麼做。

BinSkim 工作

InputType 型別 適用於 必要 預設值 選項 (適用於挑選清單) 說明
InputType pickList always True 基本 Basic、CommandLine
引數 字串 InputType = CommandLine True 要執行的標準 BinSkim 命令列引數。 將會移除並取代輸出路徑。
如需此工具命令列引數的詳細資訊,請在 [引數] 欄位中輸入 help 並執行建置工作。
函式 pickList InputType = Basic True analyze analyze、dump、exportConfig、exportRules
AnalyzeTarget filePath InputType = 基本 && 函式 = 分析 True $(Build.ArtifactStagingDirectory)*.dll;
$(Build.ArtifactStagingDirectory)*.exe
檔案、目錄或篩選模式的一或多個規範,可解析成一或多個二進位檔以進行分析。 (';' 分隔的清單)
AnalyzeSymPath 字串 InputType = 基本 && 函式 = 分析 False 目標符號檔案的路徑。
AnalyzeConfigPath 字串 InputType = 基本 && 函式 = 分析 False 預設 將會用來設定分析的原則檔案路徑。 傳遞 'default' 的值以使用內建設定。
AnalyzePluginPath 字串 InputType = 基本 && 函式 = 分析 False 要針對分析集中所有目標叫用的外掛程式路徑。
AnalyzeRecurse boolean InputType = 基本 && 函式 = 分析 False true 評估檔案規範引數時,遞迴至子目錄。
AnalyzeVerbose boolean InputType = 基本 && 函式 = 分析 False false 發出詳細資訊輸出。 產生的完整報告是設計來為合規性案例提供適當的辨識項。
AnalyzeHashes boolean InputType = 基本 && 函式 = 分析 False false 發出 SARIF 報告時,輸出分析目標的 SHA-256 雜湊。
AnalyzeStatistics boolean InputType = 基本 && 函式 = 分析 False false 產生分析工作階段的計時和其他統計資料。
AnalyzeEnvironment boolean InputType = 基本 && 函式 = 分析 False false 執行至輸出檔案的記錄電腦環境詳細資料。 警告:此選項會將潛在敏感性資訊 (例如所有環境變數值) 記錄到任何發出的記錄檔。
ExportRulesOutputType pickList InputType = 基本 && 函式 = exportRules False SARIF SARIF、SonarQube 要輸出的規則描述項檔案類型。 這會包含在發佈安全性分析記錄建置工作所發佈的 BinSkim 記錄資料夾中。
DumpTarget filePath InputType = 基本 && 函式 = 傾印 True $(Build.ArtifactStagingDirectory) 檔案、目錄或篩選模式的一或多個規範,可解析成一或多個二進位檔以進行分析。 (';' 分隔的清單)
DumpRecurse boolean InputType = 基本 && 函式 = 傾印 False true 評估檔案規範引數時,遞迴至子目錄。
DumpVerbose boolean InputType = 基本 && 函式 = 傾印 False true 發出詳細資訊輸出。 產生的完整報告是設計來為合規性案例提供適當的辨識項。
toolVersion pickList always False 最新 1.5.0、Latest、LatestPreRelease 要執行的工具版本。

認證掃描器工作

InputType 型別 適用於 必要 預設值 選項 (適用於挑選清單) 說明
OutputFormat pickList always False pre csv、pre、tsv 認證掃描器結果檔案的輸出格式。
toolVersion pickList always False 最新 1.27.7、Latest、LatestPreRelease 要執行的工具版本。
scanFolder filePath always False $(Build.SourcesDirectory) 要掃描認證的存放庫中的資料夾。
searchersFileType pickList always False 預設 Custom、Default、DefaultAndCustom 尋找用於掃描的搜尋程式檔案的選項。
searchersFile filePath searchersFileType == Custom OR searchersFileType == DefaultAndCustom False 要執行的認證掃描器搜尋程式組態檔。 您可以藉由提供認證掃描器搜尋程式檔案的逗號分隔路徑清單,來包含及使用多個值。
suppressionsFile filePath always False 認證掃描器隱藏檔案,用來隱藏輸出記錄檔中的問題。
suppressAsError boolean always False false 隱藏的相符項目會輸出為輸出檔案 [-O]-matches.[-f],而不是預設隱藏輸出檔案 [-O]-suppressed.[-f]。 (預設為 'False')
verboseOutput boolean always False false 輸出詳細資訊資訊。
batchSize 字串 always False 用來平行執行認證掃描器的並行執行緒數目。 (預設為 20)
值必須介於 1-2147483647 的範圍內。
regexMatchTimeoutInSeconds 字串 always False 在放棄檢查之前嘗試搜尋程式比對的時間,以秒為單位。
-Co RegexMatchTimeoutInSeconds=<Value> 新增至命令列。
fileScanReadBufferSize 字串 always False 讀取內容時的緩衝區大小 (以位元組為單位)。 (預設為 524288)
-Co FileScanReadBufferSize=<Value> 新增至命令列。
maxFileScanReadBytes 字串 always False 在內容分析期間,要從指定檔案讀取的最大位元組數。 (預設為 104857600)
-Co MaxFileScanReadBytes=<Value> 新增至命令列。

Roslyn 分析器工作

InputType 型別 適用於 必要 預設值 選項 (適用於挑選清單) 說明
userProvideBuildInfo pickList always True 自動 auto、msBuildInfo 使用者提供 MSBuild 版本、MSBuild 架構,以及針對 Roslyn 分析建置命令列的選項。 如果已選取 [自動],此工作將會擷取相同管線中上一個 MSBuildVSBuild 和/或 .NET Core (針對組建) 工作的組建資訊。
msBuildVersion pickList userProvideBuildInfo == msBuildInfo True 16.0 15.0、16.0 MSBuild 版本。
msBuildArchitecture pickList userProvideBuildInfo == msBuildInfo True x86 DotNetCore、x64、x86 MSBuild 架構。 注意:如果組建命令列呼叫 dotnet.exe 組建,請選擇 [透過 .NET Core] 選項。
msBuildCommandline 字串 userProvideBuildInfo == msBuildInfo True 編譯解決方案或專案的完整建置命令列。

注意:命令列應該以 MSBuild.exedotnet.exe 的完整路徑開頭。
此命令會以 $(Build.SourcesDirectory) 作為工作目錄來執行。
rulesetName pickList always False 建議 自訂、無、建議、必要 要使用的具名規則集。

如果選擇 Ruleset Configured In Your Visual Studio Project File(s),則會使用 VS 專案檔中預先設定的規則集。 如果選擇 Custom,則可以設定自訂規則集路徑選項。
rulesetVersion pickList rulesetName == Required 或 rulesetName == Recommended False 最新 8.0、8.1、8.2、Latest、LatestPreRelease 所選 SDL 規則集的版本。
customRuleset 字串 rulesetName = Custom False 要使用的規則集可存取路徑。 相對路徑會正規化為來源存放庫 ($(Build.SourcesDirectory)) 的根目錄。

如果規則集指定 Rules,且 Actions 設定為 Error,則建置工作將會失敗。 若要使用執行這項作業的規則集,請檢查建置工作 Control Options 中的 Continue on error
microsoftAnalyzersVersion pickList always False 最新 2.9.3、2.9.4、2.9.6、Latest、LatestPreRelease 要執行的 Microsoft.CodeAnalysis.FxCopAnalyzers 套件版本。
suppressionFileForCompilerWarnings filePath always False 隱藏檔,可隱藏 C# 和 VB 編譯器警告。

一個純文字檔案,每一行列出一個警告識別碼。
針對編譯器警告,僅指定警告識別碼的數值部分。 例如,1018 會隱藏 CS1018,而 CA1501 則會隱藏 CA1501。

相對檔案路徑會附加至來源存放庫 ($(Build.SourcesDirectory)) 的根目錄。

TSLint 工作

InputType 型別 適用於 必要 預設值 選項 (適用於挑選清單) 說明
RuleLibrary pickList always True tslint custom、microsoft、tslint 所有結果都包含隨附於所選 TSLint (僅基本) 版本的規則。

僅基本 - 僅限隨附於 TSLint 的規則。

包含 Microsoft 規則 - 下載 tslint-microsoft-contrib 並且包含其可在 TSLint 執行中使用的規則。 選擇此選項會 Type Checking 隱藏核取方塊,因為 Microsoft 規則需要此選項,因此會自動使用。 也會取消隱藏 Microsoft Contribution Version 欄位,允許從 npm 選取 tslint-microsoft-contrib 的版本。

包含自訂規則 - 取消隱藏 Rules Directory 欄位,接受可在 TSLint 執行中使用的 TSLint 規則目錄的可存取路徑。

注意:預設值已變更為 tslint,因為許多使用者在設定 Microsoft 規則集時遇到問題。 如需特定版本組態,請參閱 GitHub 上的 tslint-microsoft-contrib
RulesDirectory 字串 RuleLibrary == custom True 可存取的目錄,其中包含可用於 TSLint 執行的其他 TSLint 規則。
Ruleset pickList RuleLibrary != microsoft True tsrecommended custom、tslatest、tsrecommended 定義要針對 TypeScript 檔案執行的規則。

tslint:latest - 擴充 tslint:recommended 並且持續更新以包含每個 TSLint 版本中最新規則的組態。 使用此設定可能會在次要版本中引進重大變更,因為啟用新的規則會導致程序代碼中的lint失敗。 當 TSLint 達到主要版本提升時,tslint:recommended 將會更新為與 tslint:latest 相同。

tslint:recommended - TSLint 鼓勵一般 TypeScript 程式設計的穩定、有點定見的規則集。 此組態會遵循 semver,因此在次要或修補檔版本中不會有中斷性變更。
RulesetMicrosoft pickList RuleLibrary == microsoft True mssdlrequired custom、msrecommended、mssdlrecommended、mssdlrequired、tslatest、tsrecommended 定義要針對 TypeScript 檔案執行的規則。

microsoft:sdl-required - 執行 tslint 和 tslint-microsoft-contrib 規則所提供的所有可用檢查,以滿足必要的安全性開發生命週期 (SDL) 原則。

microsoft:sdl-recommended - 執行 tslint 和 tslint-microsoft-contrib 規則所提供的所有可用檢查,以滿足必要和建議的安全性開發生命週期 (SDL) 原則。

microsoft:recommended tslint-microsoft-contrib 規則建立者建議的所有檢查。 這包括安全性和非安全性檢查。

tslint:latest - 擴充 tslint:recommended 並且持續更新以包含每個 TSLint 版本中最新規則的組態。 使用此組態可能會在次要版本中引進中斷性變更,因為已啟用新的規則,這會導致程式碼中的 lint 失敗。 當 TSLint 達到主要版本提升時,tslint:recommended 將會更新為與 tslint:latest 相同。

tslint:recommended - TSLint 鼓勵一般 TypeScript 程式設計的穩定、有點定見的規則集。 此組態會遵循 semver,因此在次要或修補檔版本中不會有中斷性變更。
RulesetFile 字串 Ruleset == custom 或 RulesetMicrosoft == custom True 組態檔,指定要執行的規則。

組態的路徑將會新增為自訂規則的路徑。
FileSelectionType pickList always True fileGlob fileGlob、projectFile
檔案 字串 FileSelectionType == fileGlob True ***.ts 檔案 glob,決定要處理的檔案。 路徑是相對於 Build.SourcesDirectory 值。

Microsoft 的參與程式庫需要使用專案檔。 如果您使用 Microsoft 的參與程式庫搭配 File Glob Pattern 選項,將會為您產生專案檔。
ECMAScriptVersion pickList FileSelectionType == fileGlob && RuleLibrary == microsoft True ES3 ES2015、ES2016、ES2017、ES3、ES5、ES6、ESNext 以您的 TypeScript 編譯器設定的 ECMAScript 目標版本。 使用專案檔時,這是 TypeScript tsconfig.json 檔案的 compilerOptions.target 欄位。
Project 字串 FileSelectionType == projectFile True tsconfig.json 檔案的路徑,指定要在上面執行 TSLint 的 TypeScript 檔案。 路徑是相對於 Build.SourcesDirectory 值。
TypeCheck boolean RuleLibrary != microsoft && FileSelectionType == projectFile False true 在執行 Lint 分析規則時啟用類型檢查程式。
ExcludeFiles 字串 always False glob,表示要從 Lint 分析中排除的檔案。 路徑是相對於 Build.SourcesDirectory 值。 可以指定多個值,並以分號分隔。
OutputFormat pickList always True json checkstyle、codeFrame、filesList、json、msbuild、pmd、prose、stylish、verbose、vso 用來產生輸出的格式器。 請注意,JSON 格式與後置分析相容。
NodeMemory 字串 always False 要配置給節點以執行 TSLint 的明確記憶體數量 (以 MB 為單位)。 範例:8000

針對節點對應至 --max_old_space=<value> CLI 選項,這是 v8 option
ToolVersion pickList RuleLibrary != microsoft True 最新 4.0.0、4.0.1、4.0.2、4.1.0、4.1.1、4.2.0、4.3.0、4.3.1、4.4.0、4.4.1、4.4.2、4.5.0、4.5.1、5.0.0、5.1.0、5.2.0、5.3.0、5.3.2、5.4.0、5.4.1、5.4.2、5.4.3、5.5.0、latest 要下載和執行的 TSLint 版本
TypeScriptVersion pickList always True 最新 0.8.0、0.8.1、0.8.2、0.8.3、0.9.0、0.9.1、0.9.5、0.9.7、1.0.0、1.0.1、1.3.0、1.4.1、1.5.3、1.6.2、1.7.3、1.7.5、1.8.0、1.8.10、1.8.2、1.8.5、1.8.6、1.8.7、1.8.9、1.9.0、2.0.0、2.0.10、2.0.2、2.0.3、2.0.6、2.0.7、2.0.8、2.0.9、2.1.1、2.1.4、2.1.5、2.1.6、2.2.0、2.2.1、custom、latest 要下載及使用的 TypeScript 版本。
注意:這必須是與用來編譯程式碼相同的 TypeScript 版本。
TypeScriptVersionCustom 字串 TypeScriptVersion == custom True 最新 要下載及使用的 TypeScript 版本。
注意:這必須是與用來編譯程式碼相同的 TypeScript 版本。
MicrosoftContribVersion pickList RuleLibrary == microsoft 最新 4.0.0、4.0.1、5.0.0、5.0.1、latest 要下載及使用的 tslint-microsoft-contrib (SDL 規則) 版本。
注意:將會選擇與針對 tslint-microsoft-contrib 所選擇版本相容的 tslint 版本。 tslint-microsoft-contrib 的更新將會受到此建置工作所限制,直到測試發生期間為止。

發佈安全性分析記錄工作

InputType 型別 適用於 必要 預設值 選項 (適用於挑選清單) 說明
ArtifactName 字串 always True CodeAnalysisLogs 要建立的成品名稱。
ArtifactType pickList always True 容器 Container、FilePath 要建立的成品名稱。
TargetPath 字串 ArtifactType = FilePath False \my\share$(Build.DefinitionName)
$(Build.BuildNumber)
要複製檔案的檔案共用
AllTools boolean always True true 發佈所有安全開發工具建置工作所產生的結果。
AntiMalware boolean AllTools = false True true 發佈 AntiMalware 建置工作所產生的結果。
BinSkim boolean AllTools = false True true 發佈 BinSkim 建置工作所產生的結果。
CredScan boolean AllTools = false True true 發佈認證掃描器建置工作所產生的結果。
RoslynAnalyzers boolean AllTools = false True false 發佈 Roslyn 分析器建置工作所產生的結果。
TSLint boolean AllTools = false True true 發佈 TSLint 建置工作所產生的結果。 請注意,報告僅支援 JSON 格式的 TSLint 記錄。 如果您已選擇不同的格式,請據以更新 TSLint 建置工作。
ToolLogsNotFoundAction 挑選清單 always True 標準 Error、None、Standard、Warning 找不到所選取工具 (或者如果已勾選 [所有工具] 則為任何工具) 的記錄時要採取的動作,表示工具未執行。

選項︰
無:訊息會寫入至詳細資訊輸出資料流,僅能透過將 VSTS 變數 system.debug 設定為 true 來存取。
標準:(預設值) 寫入標準輸出訊息,針對工具找不到任何記錄。
警告:寫入黃色警告訊息,針對工具找不到任何記錄,會在建置摘要頁面上顯示為警告。
錯誤:寫入紅色錯誤訊息並且擲回例外狀況,中斷建置。 使用此選項可確保具有個別工具選項,以確定哪些工具已執行。

安全性報告工作

InputType 型別 適用於 必要 預設值 選項 (適用於挑選清單) 說明
VstsConsole boolean always False true 將結果寫入管線主控台。
TsvFile boolean always False true 產生 tsv 檔案 (定位字元分隔值),每個找到的結果一行,以及結果的定位字元分隔資訊。
HtmlFile boolean always False true 產生 HTML 報告檔案。
AllTools boolean always True false 報告所有安全開發工具建置工作所產生的結果。
BinSkim boolean AllTools = false True false 報告 BinSkim 建置工作所產生的結果。
BinSkimBreakOn pickList AllTools = true 或 BinSkim = true True 錯誤 Error、WarningAbove 要報告的結果層級。
CredScan boolean AllTools = false True false 報告認證掃描器建置工作所產生的結果。
RoslynAnalyzers boolean AllTools = false True false 報告 Roslyn 分析器建置工作所產生的結果。
RoslynAnalyzersBreakOn pickList AllTools = true 或 RoslynAnalyzers = true True 錯誤 Error、WarningAbove 要報告的結果層級。
TSLint boolean AllTools = false True false 報告 TSLint 建置工作所產生的結果。 請注意,報告僅支援 JSON 格式的 TSLint 記錄。 如果您已選擇不同的格式,請據以更新 TSLint 建置工作。
TSLintBreakOn pickList AllTools = true 或 TSLint = true True 錯誤 Error、WarningAbove 要報告的結果層級。
ToolLogsNotFoundAction 挑選清單 always True 標準 Error、None、Standard、Warning 找不到所選取工具 (或者如果已勾選 [所有工具] 則為任何工具) 的記錄時要採取的動作,表示工具未執行。

選項︰
無:訊息會寫入至詳細資訊輸出資料流,僅能透過將 VSTS 變數 system.debug 設定為 true 來存取。
標準:(預設值) 寫入標準輸出訊息,針對工具找不到任何記錄。
警告:寫入黃色警告訊息,針對工具找不到任何記錄,會在建置摘要頁面上顯示為警告。
錯誤:寫入紅色錯誤訊息並且擲回例外狀況,中斷建置。 使用此選項可確保具有個別工具選項,以確定哪些工具已執行。
CustomLogsFolder 字串 always False 分析工具記錄所在的基底資料夾;個別記錄檔將會在此路徑下以每個工具命名的子資料夾中。

後置分析工作

InputType 型別 適用於 必要 預設值 選項 (適用於挑選清單) 說明
AllTools boolean always True false 如果任何 Microsoft 安全性程式碼分析建置工作發現任何問題,則中斷建置。
BinSkim boolean AllTools = false True false 如果發現任何 BinSkim 問題,請根據您選取的 [中斷] 選項,中斷建置。
BinSkimBreakOn pickList AllTools = true 或 BinSkim = true True 錯誤 Error、WarningAbove 中斷建置的問題層級。
CredScan boolean AllTools = false True false 如果發現任何認證掃描器問題,則中斷建置。
RoslynAnalyzers boolean AllTools = false True false 如果發現任何 Roslyn 分析器問題,則中斷建置。
RoslynAnalyzersBreakOn pickList AllTools = true 或 RoslynAnalyzers = true True 錯誤 Error、WarningAbove 中斷建置的問題層級。
TSLint boolean AllTools = false True false 如果發現任何 TSLint 問題,則中斷建置。 請注意,後置分析僅支援 JSON 格式的 TSLint 記錄。 如果您已選擇不同的格式,請據以更新 TSLint 建置工作。
TSLintBreakOn pickList AllTools = true 或 TSLint = true True 錯誤 Error、WarningAbove 中斷建置的問題層級。
VstsConsole boolean always False true 將結果寫入管線主控台。
ToolLogsNotFoundAction 挑選清單 always True 標準 Error、None、Standard、Warning 找不到所選取工具 (或者如果已勾選 [所有工具] 則為任何工具) 的記錄時要採取的動作,表示工具未執行。

選項︰
無:訊息會寫入至詳細資訊輸出資料流,僅能透過將 VSTS 變數 system.debug 設定為 true 來存取。
標準:(預設值) 寫入標準輸出訊息,針對工具找不到任何記錄。
警告:寫入黃色警告訊息,針對工具找不到任何記錄,會在建置摘要頁面上顯示為警告。
錯誤:寫入紅色錯誤訊息並且擲回例外狀況,中斷建置。 使用此選項可確保具有個別工具選項,以確定哪些工具已執行。

下一步

如果您有關於安全性程式碼分析擴充功能和所提供的工具的進一步問題,請參閱我們的常見問題集頁面