共用方式為


使用 .NET 編譯程式平臺 (Roslyn) 分析器進行程式碼分析

.NET 編譯程式平臺 (Roslyn) 分析器會檢查您的 C# 或 Visual Basic 程式代碼是否有樣式、品質、可維護性、設計和其他問題。 檢查或分析會在設計階段對所有開啟的檔案進行。

分析器分成下列群組:

分析器嚴重程度級別

每個 Roslyn 分析器規則或 診斷都有預設嚴重性和隱藏狀態,您可以為您的專案自定義。

嚴重性層級包括:錯誤、警告、建議、靜默、無任何和預設值。 如需詳細資訊和行為,請參閱 設定嚴重性層級

規則違規

如果分析器發現任何分析器規則違規,它會在 [ 錯誤清單 ] 視窗和程式代碼編輯器中報告它們。

下列螢幕快照顯示 錯誤清單 視窗中報告的規則違規。 錯誤清單中回報的分析器違規符合規則的 嚴重性層級設定

顯示 [錯誤清單] 視窗中分析器違規的螢幕快照。

分析器規則違規也會在程式碼編輯器中,以波浪線顯示在有問題的程式碼底下。 例如,下列螢幕快照顯示三個違規:一個錯誤(紅色波浪線)、一個警告(綠色波浪線),另一個建議(三個灰色點):

顯示程式代碼編輯器中錯誤、警告和建議標記的螢幕快照。

程式碼修正

許多診斷都有一或多個相關聯的 代碼修正 ,您可以套用以修正違規。 在燈泡圖示功能表中顯示程式碼修正,以及其他類型的 快速動作。 如需程式代碼修正的詳細資訊,請參閱 常見快速動作

顯示程式代碼編輯器中分析器違規和快速動作程式代碼修正的螢幕快照。

設定分析器嚴重性層級

您可以在 EditorConfig 檔案燈泡菜單中設定分析器規則的嚴重性。

您也可以設定分析器,以在建置階段和輸入時檢查程序代碼。 您可以設定即時程式代碼分析的範圍,只針對目前檔、所有開啟的檔或整個解決方案執行。 如需詳細資訊,請參閱 設定 .NET 的即時程序代碼分析

小提示

只有在分析器安裝為 NuGet 套件時,才會顯示程式代碼分析器的建置時間錯誤和警告。 內建分析器(例如,IDE0067和IDE0068)永遠不會在建置期間執行。

安裝外部程式代碼分析器

Visual Studio 包含一組始終處於活動狀態的核心 Roslyn 分析器。 如果您需要更多程式代碼分析器,您可以透過 NuGet 套件為每個專案安裝外部分析器。 某些分析器也可以 Visual Studio .vsix 擴充功能的形式提供,在此情況下,它們會套用至您在 Visual Studio 中開啟的任何解決方案。 如需安裝這兩種不同類型的分析器的相關信息,請參閱 安裝程式碼分析器

影響範圍

當您使用慣用的方法將分析器安裝為 NuGet 套件時,它只會套用至安裝該 NuGet 套件的專案。 否則,如果您將分析器安裝為 Visual Studio 延伸模組,它會套用至方案層級和 Visual Studio 的所有實例。 在小組環境中,您安裝為 NuGet 套件的分析器適用於處理該專案的所有開發人員。

備註

第一方分析器會包含在 .NET SDK 中。 最好從 .NET SDK 啟用這些分析器,而不是將它們安裝為 Microsoft.CodeAnalysis.NetAnalyzersNuGet 套件。 從 .NET SDK 啟用分析器可確保當您更新 SDK 時,就會自動取得分析器錯誤修正和新的分析器。 如需分析器的詳細資訊,請參閱 啟用或安裝第一方 .NET 分析器

建置錯誤

若要在建置階段強制執行規則,請使用命令行或持續整合 (CI) 組建,請選擇下列其中一個選項:

  • 建立 .NET 5.0 或更新版本專案,預設會啟用程序代碼分析。 若要在以舊版 .NET 為目標的項目上啟用程式代碼分析,請將 EnableNETAnalyzers 屬性設定為 true

  • 將分析器安裝為 NuGet 套件。 如果您將分析器安裝為 Visual Studio 延伸模組,分析器警告和錯誤不會出現在建置報表中。

下列螢幕快照顯示建置包含分析器規則違規之專案的命令行建置輸出:

此螢幕快照顯示開發人員命令提示字元中違反規則的 MSBuild 輸出。

規則嚴重性

如果您想要設定 分析器規則嚴重性,您必須將分析器安裝為 NuGet 套件。 您無法設定由安裝為 Visual Studio 擴充功能的分析器提供的規則嚴重性。

後續步驟