.NET のライブ コード分析を構成する

エディターでソース ファイルを編集しているとき、複数の方法で Visual Studio によってコードが分析されます。 この分析は、バックグラウンド分析と呼ばれます。 これらの分析は、機能に基づいて次のように分類できます。

  • 診断のバックグラウンド計算: このタイプの分析で、ソース ファイル内のエラー、警告、提案が計算されます。 これらの診断は、[エラー一覧] ウィンドウにエントリとして表示され、コード エディターで波線でマークされます。 これらは次のカテゴリに分類されます。

    • C# および Visual Basic コンパイラ診断。
    • Roslyn アナライザー診断。これには次のものが含まれます。
      • コード スタイルの提案用の組み込み IDE アナライザー
      • コード品質の提案用の組み込み CA アナライザー
      • 現在のソリューションのプロジェクトにインストールされている外部アナライザー パッケージ
  • その他のバックグラウンド分析: このタイプの分析により、IDE 機能の応答性と Visual Studio の相互作用が向上します。 分析の例を次に示します。

    • 開いているファイルのバックグラウンド解析
    • IDE 機能の応答性を向上させるために、シンボルを認識するためのファイルが開かれているプロジェクトのバックグラウンドのコンパイル。
    • 構文およびシンボル キャッシュの作成
    • フォーム、コントロールなど、ソース ファイルのデザイナーの関連付けの検出。

既定の分析スコープ

既定では、コンパイラ診断は開いているすべてのドキュメントで実行されます。 Visual Studio 2022 以降では、Roslyn アナライザー診断は現在アクティブなドキュメントでのみ実行されます。 その他のバックグラウンド分析は、1 つ以上のファイルが開かれているすべてのプロジェクトに対して実行されます。 一部のバックグラウンド分析はソリューション全体に対して実行されます。

カスタム分析スコープ

各バックグラウンド分析の既定のスコープは、ほとんどのお客様のシナリオとソリューションで最適なユーザー エクスペリエンス、機能、パフォーマンスを実現できるように調整されています。 ただし、お客様はこのスコープをカスタマイズして、バックグラウンド分析を増減することが必要な場合があります。 次に例を示します。

  • 省電力モード

    ノート PC でバッテリを使用している場合、バッテリ寿命を延ばすために消費電力を最小限に抑えたい場合があります。 このシナリオでは、バックグラウンド分析を最小限に抑える必要があります。

  • オンデマンド コード分析

    アナライザーのライブ実行を無効にし、必要に応じて手動でコード分析を実行したい場合、バックグラウンド分析を最小限に抑える必要があります。 詳細については、「.NET のコード分析を手動で実行する」を参照してください。

  • ソリューションの完全な分析

    エディターで開かれているかどうかに関係なく、ソリューション内のすべてのファイルのすべての診断を表示したい場合は、バックグラウンド分析の範囲をソリューション全体に最大化できます。

Visual Studio 2019 以降では、C# および Visual Basic プロジェクトのすべてのライブ コード分析 (診断計算を含む) のスコープを明示的にカスタマイズできます。 使用できる分析スコープは次のとおりです。

Scope 説明
なし すべてのアナライザーとそれに対応するコード修正は無効になります。

コンパイラ診断とそれに対応するコード修正は、"すべての開かれている" ドキュメントで有効になります。
現在のドキュメント (既定値) すべてのアナライザーは、現在アクティブなドキュメントに対してのみ実行されます。

コンパイラ診断は、"すべての開かれている" ドキュメントで有効になります。
開かれているドキュメント すべてのアナライザーとコンパイラ診断は、"すべての開かれている" ドキュメントで有効になります。
ソリューション全体 すべてのアナライザーとコンパイラ診断は、ドキュメントが開かれているか閉じられているかに関係なく、ソリューションの "すべての" ドキュメントで有効になります。
  • 現在のドキュメント: ライブ コード分析スコープを最小化して、エディターに現在表示されているファイルのみを対象に実行します。
  • 開かれているドキュメント: ライブ コード分析のスコープに、すべての開かれているドキュメントが含まれます。 これは既定の設定です。
  • ソリューション全体: ライブ コード分析スコープを最大化して、ソリューション全体のすべてのファイルとプロジェクトを対象に実行します。

次の手順に従って、[オプション] で上記のカスタム分析スコープのいずれかを選択できます。

  1. [オプション] ダイアログ ボックスを開くには、Visual Studio のメニュー バーで、[ツール]>[オプション] の順に選択します。

  2. [オプション] ダイアログ ボックスで、[テキスト エディター]>[C#] (または [Visual Basic]) >[詳細設定] を選択します。

  1. [バックグラウンド コード分析の実行] ドロップダウン リストからバックグラウンド分析スコープを選択して、分析スコープをカスタマイズします。 完了したら、[OK] を選択します。

    Visual Studio のバックグラウンド コード分析スコープ オプションを示すスクリーンショット。

  1. [バックグラウンド分析スコープ:] でバックグラウンド分析スコープを選択します。 完了したら、[OK] を選択します。

    Visual Studio のバックグラウンド コード分析スコープ オプションを示すスクリーンショット。

Note

Visual Studio 2019 より前では、[ツール]>[オプション]>[テキスト エディター]>[C#] (または [Visual Basic]) >[詳細設定] タブの [完全ソリューション解析を有効にする] チェックボックスを使用して、診断計算の分析スコープがソリューション全体になるようにカスタマイズします。Visual Studio の以前のバージョンでは、バックグラウンド分析スコープの最小化はサポートされていません。

ライブ コード分析スコープを自動的に最小化

Visual Studio では、使用可能なシステム メモリが 200 MB 以下であることが検出されると、ライブ コード分析スコープが現在のドキュメントに自動的に最小化されます。 これが行われると、Visual Studio で一部の機能が無効化されていることを通知するアラートが表示されます。 詳細については、「自動機能の中断」を参照してください。

Visual Studio によって分析スコープが最小限に抑えられているというアラート警告を示すスクリーンショット。