設定 .NET 的即時程式碼分析

在編輯器編輯來源檔案時,Visual Studio 會以數種方式分析程式碼。 此分析稱為背景分析。 這些分析可根據功能依下列方式分組:

  • 診斷的背景計算:此類型分析會計算來源檔案的錯誤、警告和建議。 這些診斷會顯示為 [錯誤清單] 視窗的項目,且在程式碼編輯器以波形曲線標示。 其可分類為下列類別:

    • C# 和 Visual Basic 編譯器診斷
    • Roslyn 分析器診斷,其中包括:
      • 程式碼樣式建議的內建 IDE 分析器
      • 程式碼品質建議的內建 CA 分析器
      • 外部分析器套件:已安裝至目前解決方案的專案
  • 其他背景分析:此類型分析會改善整合式開發環境 (IDE) 功能的回應能力和 Visual Studio 互動。 範例分析包括:

    • 開啟檔案的背景剖析
    • 使用開啟的檔案對專案進行背景編譯以實作符號,進而提高整合式開發環境 (IDE) 功能的回應能力
    • 建置語法和符號快取
    • 偵測來源檔案的設計工具關聯,例如表單和控制項

預設分析範圍

編譯程式診斷預設會在所有開啟文件執行。 在 Visual Studio 2022 與更高版本,Roslyn 分析器診斷只會在目前使用中文件執行。 其他背景分析會針對至少有一個開啟檔案的所有專案執行。 針對整個解決方案執行部分背景分析。

自訂分析範圍

每個背景分析的預設範圍已針對大部分客戶案例和解決方案,就最佳使用者體驗、功能和效能進行調整。 不過,在某些情況下,客戶可能會想要自訂此範圍來減少或增加背景分析。 例如:

  • 省電模式

    如果膝上型電腦正使用電池運作,您可能想要將耗電量降至最低,以延長電池使用時間。 在此案例,您會想要將背景分析降到最低。

  • 隨選程式碼分析

    如果想要視需要關閉即時分析器執行並手動執行程式碼分析,您會想要將背景分析降到最低。 如需詳細資訊,請參閱<手動執行 .NET 程式碼分析>。

  • 完整解決方案分析

    無論編輯器中是否有開啟檔案,您都可能會想要查看解決方案中所有檔案的所有診斷,可以最大化背景分析範圍至整個解決方案。

從 Visual Studio 2019 開始,您可以針對 C# 和 Visual Basic 專案明確自訂所有即時程式碼分析的範圍,包括診斷計算。 可用的分析範圍包括:

影響範圍 描述
None 所有分析器和對應的程式碼修正都會停用。

編譯器診斷和對應的程式碼修正會在所有開啟的文件上啟用。
目前文件 (預設) 所有分析器只會在目前使用中文件上執行。

編譯器診斷會在所有開啟的文件上啟用。
開啟的文件 所有分析器和編譯器診斷會在所有開啟的文件上啟用。
整個解決方案 不論開啟還是關閉,所有分析器和編譯器診斷都會在解決方案中的所有文件上啟用。
  • 目前文件:將即時程式碼分析範圍最小化,只針對編輯器中的目前或可見檔案執行。
  • 開啟的文件: 即時程式碼分析範圍包含所有開啟的文件。 此設定是預設值。
  • 整個解決方案: 最大化即時程式碼分析範圍,以針對整個解決方案中的所有檔案和專案執行。

可以遵循下列步驟,在 [選項] 中選擇其中一個自訂分析範圍:

  1. 若要開啟 [選項] 對話方塊,請從功能表列中選擇 [工具]>[選項]

  2. [選項] 對話方塊中,選擇 [文字編輯器]>[C#] (或 [程式碼樣式]) >[進階]

  1. 從 [針對以下內容執行背景程式碼分析:] 下拉式清單選取背景分析範圍,以便自訂分析範圍。 完成時請選擇 [確定]

    螢幕擷取畫面顯示 Visual Studio 的背景程式碼分析範圍選項。

  1. 從 [背景分析範圍:] 選取背景分析範圍。 完成時請選擇 [確定]

    螢幕擷取畫面顯示 Visual Studio 的背景程式碼分析範圍選項。

注意

在 Visual Studio 2019 之前,可以使用 [啟用完整解決方案分析] 核取方塊,從 [工具]>[選項]>[文字編輯器]>[C#] (或 [Visual Basic]) >[進階] 索引標籤自訂整個解決方案診斷計算的分析範圍。不支援將先前 Visual Studio 版本中的背景分析範圍最小化。

自動將即時程式碼分析範圍最小化

如果 Visual Studio 偵測到系統可用記憶體只剩 200 MB 或更少,它會自動將即時程式碼分析範圍最小化到目前文件。 如發生這種情況,會出現警示,通知您 Visual Studio 正在停用某些功能。 如需詳細資訊,請參閱 自動功能暫停

螢幕擷取畫面顯示警示警告,說明 Visual Studio 正在最小化分析範圍。