當您在編輯器中編輯原始檔時,Visual Studio 會以數種方式分析程式碼。 此分析稱為 背景分析。 這些分析可根據功能分類如下:
診斷的後台計算: 這種類型的分析會計算來源檔案中的錯誤、警告和建議。 這些診斷會顯示為 [錯誤清單] 視窗中的項目,並在程式碼編輯器中以波浪線標示。 它們可以分為以下幾類:
- C# 和 Visual Basic 編譯器診斷
- Roslyn 分析器診斷,其中包括:
- 內建 IDE 分析器,提供程式碼樣式建議
- 內建 CA 分析器,提供程式碼品質建議
- 針對目前解決方案中的專案安裝的外部分析器套件
其他背景分析: 這種類型的分析可改善 IDE 功能的回應能力和 Visual Studio 互動。 範例分析包括:
- 開啟檔案的背景解析
- 對具有開啟檔案的專案進行後台編譯,以實現符號以提高 IDE 功能的回應能力
- 建置語法和符號快取
- 偵測來源檔案與設計工具(例如表單和控制項)的關聯
預設分析範圍
依預設,編譯器診斷會在所有開啟的文件上執行。 在 Visual Studio 2022 和更新版本中,Roslyn 分析器診斷只會在目前作用中的檔上執行。 其他背景分析會針對至少有一個開啟檔案的所有專案執行。 某些背景分析會針對整個解決方案執行。
自訂分析範圍
每個背景分析的預設範圍都會針對大多數客戶案例和解決方案的最佳使用者體驗、功能和效能進行調整。 不過,在某些情況下,客戶可能想要自訂此範圍,以減少或增加背景分析。 例如:
省電模式
如果您使用筆記型電腦電池運行,您可能希望將功耗降到最低,以延長電池壽命。 在此實務範例中,您想要將背景分析降到最低。
隨選程式碼分析
如果您偏好關閉即時分析器執行,並在需要時手動執行程式碼分析,則需要將背景分析降到最低。 如需詳細資訊,請參閱 手動執行 .NET 的程式碼分析。
完整的解決方案分析
如果您想要查看解決方案中所有檔案中的所有診斷,無論它們是否在編輯器中開啟,都可以將背景分析範圍最大化至整個解決方案。
從 Visual Studio 2019 開始,您可以明確自訂 C# 和 Visual Basic 專案的所有即時程式碼分析範圍,包括診斷計算。 可用的分析範圍包括:
| Scope | Description |
|---|---|
| 沒有 | 所有分析器和對應的程式碼修正程式都會停用。 編譯器診斷及對應的程式碼修正程式會在 所有開啟的文件 上啟用。 |
| 目前文件 (預設) | 所有分析器都只會在目前作用中的文件上執行。 編譯器診斷會在 所有開啟的文件 上啟用。 |
| 開啟文件 | 所有分析器和編譯器診斷都會在 所有開啟的文件 上啟用。 |
| 整個解決方案 | 所有分析器和編譯器診斷都會在解決方案中,啟用於所有文件上,不論文件是開啟的還是關閉的。 |
- 當前文件: 將即時程式碼分析範圍最小化,以僅針對編輯器中的目前或可見檔案執行。
- 開啟文件: 即時程式碼分析範圍包括所有開啟的文件。 這項設定是預設值。
- 整個解決方案: 最大化即時程式碼分析範圍,以針對整個解決方案中的所有檔案和專案執行。
您可以遵循下列步驟,在 [選項] 中選擇其中一個自訂分析範圍:
若要開啟 [選項] 對話方塊,請在 Visual Studio 的功能表列上選擇 [工具>] [選項]。
在 [選項] 對話方塊中,選擇 [文字編輯器]>C# (或 Visual Basic) >[進階]。
從執行 背景程式碼分析: 下拉式清單中選取背景分析範圍,以自訂分析範圍。 完成後 選擇確定 。
選擇 背景分析範圍:中的分析範圍。 完成後 選擇確定 。
備註
在 Visual Studio 2019 之前,您可以使用 [工具>>> (或 Visual Basic ) >索引標籤中的 [啟用完整解決方案分析] 複選框,自訂整個解決方案診斷計算的分析範圍。不支援將舊版 Visual Studio 中的背景分析範圍降到最低。
自動最小化即時程式碼分析範圍
如果 Visual Studio 偵測到有 200 MB 或更少的系統記憶體可用,它會自動將即時程式碼分析範圍最小化為 [目前文件]。 發生這種情況時,會出現警示,通知您 Visual Studio 正在停用某些功能。 如需詳細資訊,請參閱 自動功能暫停。