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

適用于:yesVisual Studio no Visual Studio for Mac no Visual Studio Code

當您在編輯器中編輯原始程式檔時,Visual Studio 會分析程式碼。 這稱為 背景分析。 有些需要最少的分析,才能接受 Visual Studio IDE 編輯體驗。 其中一些用於改善 IDE 功能的回應性。 雖然其中有些是啟用其他 IDE 功能,例如來自 Roslyn 分析器的診斷和程式碼修正。 根據功能,這些分析可以分組如下:

  • 診斷的背景計算:分析以計算來源檔案中的錯誤、警告和建議。 這些診斷會顯示為錯誤清單中的專案,並在編輯器中顯示為波浪線。 它們可以分類為兩個類別:

    • C# 和 Visual Basic 編譯器診斷

    • Roslyn 分析器診斷,包括:

      • 程式碼樣式建議的內建 IDE 分析器
      • 程式碼品質建議的內建 CA 分析器
      • 針對目前方案中的專案 所安裝 的協力廠商分析器套件。
  • 其他背景分析:分析以改善 IDE 功能的回應性和 Visual Studio 互動。 這類分析的一些範例如下:

    • 開啟檔案的背景剖析。
    • 具有開啟檔案的專案背景編譯,以實現特定 IDE 功能改善回應性的符號。
    • 建置語法和符號快取。
    • 偵測原始程式檔的設計工具關聯,例如表單和控制項。

預設分析範圍

根據預設,編譯器診斷會在所有開啟的檔上執行,而且,在 Visual Studio 2022 和更新版本中,Roslyn 分析器診斷只會在目前使用中的檔上執行。 先前提及 的幾個其他背景分析 會針對至少有一個開啟檔案的所有專案執行。 一些背景分析會針對整個解決方案執行。

自訂分析範圍

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

  • 省電模式:如果您是在膝上型電腦電池上執行,您可能想要將耗電量降到最低,以延長電池使用時間。 在此案例中,您想要將背景分析降至最低。
  • 隨選程式碼分析:如果您想要視需要關閉即時分析器執行並手動執行程式碼分析,您會想要將背景分析降至最低。 請參閱 如何:視需要手動執行程式碼分析
  • 完整解決方案分析:您可能想要在解決方案中的所有檔案中看到所有診斷,不論它們是否在編輯器中開啟。 在此案例中,您想要將背景分析範圍最大化至整個解決方案。

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

選項 描述
所有分析器和對應的程式碼修正都會停用。

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

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

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

  1. 若要開啟 [選項] 對話方塊,請在 Visual Studio 的功能表列上選擇 [工具>選項]。

  2. 在 [選項] 對話方塊中,選擇 [文字編輯器>C# (] 或 [Visual Basic]) >[進階]。

  3. 選取所需的 背景分析範圍 以自訂分析範圍。 完成時,請選擇 [確定 ]。

Screenshot of the background code analysis scope options in Visual Studio.

Screenshot of the background code analysis scope options in Visual Studio.

注意

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

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

如果 Visual Studio 偵測到有 200 MB 或更少的系統記憶體可供使用,它會自動將即時程式碼分析範圍降到「目前檔」。 如果發生這種情況,會出現警示,通知您 Visual Studio 已停用某些功能。 如需詳細資訊,請參閱 自動功能暫停

Alert text minimizing analysis scope

另請參閱