.NET のライブ コード分析を構成する
適用対象:Visual Studio
Visual Studio for Mac
Visual Studio Code
エディターでソース ファイルを編集しているとき、Visual Studio によってコードが分析されます。 これは、"バックグラウンド分析" と呼ばれます。 その一部は、Visual Studio IDE の許容できる編集エクスペリエンスを実現するために必要な最小限の分析です。 IDE 機能の応答性を向上させるためのものもあります。 さらに、Roslyn アナライザーによる診断やコード修正など、追加の IDE 機能を有効にすることを目的としたものもあります。 これらの分析は、機能に基づいて次のようにグループ化できます。
診断のバックグラウンド計算: ソース ファイル内のエラー、警告、提案を計算するための分析。 これらの診断は、エラー一覧のエントリとして表示され、エディターには波線として表示されます。 これらは次の 2 つのカテゴリに分類できます。
C# および Visual Basic コンパイラ診断。
Roslyn アナライザー診断。これには次のものが含まれます。
- コード スタイルの提案用の組み込み IDE アナライザー
- コード品質の提案用の組み込み CA アナライザー
- 現在のソリューションのプロジェクト用にインストールされているサード パーティのアナライザー パッケージ
その他のバックグラウンド分析: IDE 機能の応答性と Visual Studio の相互作用を向上させるための分析。 このような分析の例を次に示します。
- 開いているファイルのバックグラウンド解析。
- 特定の IDE 機能の応答性を向上させるために、シンボルを認識するためのファイルが開かれているプロジェクトのバックグラウンドのコンパイル。
- 構文およびシンボル キャッシュの作成。
- フォーム、コントロールなど、ソース ファイルのデザイナーの関連付けの検出。
既定の分析スコープ
既定では、コンパイラ診断はすべての開かれているドキュメントに対して実行されます。また Visual Studio 2022 以降では、Roslyn アナライザー診断は現在アクティブなドキュメントに対してのみ実行されます。 前述の "その他のバックグラウンド分析" のいくつかは、1 つ以上のファイルが開かれているすべてのプロジェクトに対して実行されます。 いくつかのバックグラウンド分析は、ソリューション全体に対して実行されます。
カスタム分析スコープ
各バックグラウンド分析の既定のスコープは、お客様のシナリオとソリューションの大半で最適なユーザー エクスペリエンス、機能、パフォーマンスを実現できるように調整されています。 ただし、お客様はこのスコープをカスタマイズして、バックグラウンド分析を増減することが必要な場合があります。 たとえば次のような点です。
- 省電力モード: ノート PC でバッテリを使用している場合、バッテリ寿命を延ばすために消費電力を最小限に抑えたい場合があります。 このシナリオでは、バックグラウンド分析を最小限に抑える必要があります。
- オンデマンド コード分析: アナライザーのライブ実行を無効にし、必要に応じて手動でコード分析を実行したい場合、バックグラウンド分析を最小限に抑える必要があります。 オンデマンドでコード分析を手動で実行する方法に関する記事を参照してください。
- ソリューションの完全な分析: ソリューション内のファイルをエディターで開いているかどうかに関係なく、それらのすべてのファイルのすべての診断を確認したい場合があります。 このシナリオでは、バックグラウンド分析スコープがソリューション全体になるように最大化する必要があります。
Visual Studio 2019 以降では、C# および Visual Basic プロジェクトのすべてのライブ コード分析 (診断計算を含む) のスコープを明示的にカスタマイズできます。 使用できる分析スコープは次のとおりです。
オプション | 説明 |
---|---|
なし | すべてのアナライザーとそれに対応するコード修正は無効になります。 コンパイラ診断とそれに対応するコード修正は、"すべての開かれている" ドキュメントで有効になります。 |
現在のドキュメント (既定値) | すべてのアナライザーは、現在アクティブなドキュメントに対してのみ実行されます。 コンパイラ診断は、"すべての開かれている" ドキュメントで有効になります。 |
開かれているドキュメント | すべてのアナライザーとコンパイラ診断は、"すべての開かれている" ドキュメントで有効になります。 |
ソリューション全体 | すべてのアナライザーとコンパイラ診断は、ドキュメントが開かれているか閉じられているかに関係なく、ソリューションの "すべての" ドキュメントで有効になります。 |
- 現在のドキュメント: ライブ コード分析スコープを最小化して、エディターに現在表示されているファイルのみを対象に実行します。
- 開かれているドキュメント: ライブ コード分析のスコープに、すべての開かれているドキュメントが含まれます。 既定値です。
- ソリューション全体: ライブ コード分析スコープを最大化して、ソリューション全体のすべてのファイルとプロジェクトを対象に実行します。
以下の手順に従って、[オプション] で上記のカスタム分析スコープのいずれかを選択できます。
[オプション] ダイアログ ボックスを開くには、Visual Studio のメニュー バーで、[ツール]>[オプション] の順に選択します。
[オプション] ダイアログ ボックスで、[テキスト エディター]>[C#] (または [Visual Basic]) >[詳細設定] を選択します。
目的のバックグラウンドの分析スコープを選択して、分析スコープをカスタマイズします。 完了したら、[OK] を選択します。
Note
Visual Studio 2019 より前では、[ツール]>[オプション]>[テキスト エディター]>[C#] (または [Visual Basic]) >[詳細設定] タブの [完全ソリューション解析を有効にする] チェック ボックスを使用して、診断計算の分析スコープがソリューション全体になるようにカスタマイズできます。Visual Studio の以前のバージョンでは、バックグラウンド分析スコープの最小化はサポートされていません。
ライブ コード分析スコープを自動的に最小化
Visual Studio では、使用可能なシステム メモリが 200 MB 以下であることが検出されると、ライブ コード分析スコープが "現在のドキュメント" に自動的に最小化されます。 これが行われると、Visual Studio で一部の機能が無効化されたことを通知するアラートが表示されます。 詳細については、「自動機能の中断」を参照してください。