ソース コード分析の概要

.NET Compiler Platform (Roslyn) アナライザーを使用して、C# または Visual Basic コードのスタイル、品質、保守容易性、設計、その他の問題を検査します。 この検査または分析は、開いているすべてのファイルの設計時に行われます。

アナライザーは、次のグループに分類されます。

アナライザーの重要度レベル

各アナライザーには、次の重要度レベルのいずれかがあります。

重要度 (ソリューション エクスプローラー) 重要度 (EditorConfig ファイル) ビルド時の動作 エディターの動作
エラー error 違反は、エラー一覧とコマンドラインのビルド出力に "エラー" として表示され、ビルドが失敗します。 問題を起こしているコードには赤色の波線が引かれ、スクロール バーに小さい赤色のボックスが示されます。
警告 warning 違反は、エラー一覧とコマンドラインのビルド出力に "警告" として表示されますが、ビルドが失敗することはありません。 問題を起こしているコードには緑色の波線が引かれ、スクロール バーに小さい緑色のボックスが示されます。
Info suggestion 違反は、エラー一覧とコマンドラインに "メッセージ" として表示され、コマンドラインのビルド出力には表示されません。 問題を起こしているコードには灰色の波線が引かれ、スクロール バーに小さい灰色のボックスが示されます。
[非表示] silent ユーザーに表示されません。 ユーザーに表示されません。 ただし、診断は IDE 診断エンジンに報告されます。
なし none 完全に抑制されます。 完全に抑制されます。
Default default ルールの既定の重要度に対応します。 ルールの既定値を確認するには、プロパティ ウィンドウを調べます。 ルールの既定の重要度に対応します。

アナライザーでルール違反が見つかった場合は、コード エディターでは問題のあるコードの下の "波線" として、また [エラー一覧] ウィンドウで報告されます。

[エラー一覧] ウィンドウに表示されるアナライザーの違反

エラー一覧に報告されるアナライザーの違反は、ルールの重要度レベルの設定と一致します。 また、アナライザーの違反は、コード エディター内の問題を起こしているコードの下に波線で示されます。 次の図は、3 つの違反 — 1 つのエラー (赤色の波線)、1 つの警告 (緑色の波線)、1 つの候補 (灰色の 3 つの点) を示しています。

Visual Studio でのコード エディターの波線

多くのアナライザー ルール ("診断") には、1 つ以上の "コード修正" が関連付けられており、これを適用してルール違反を修正できます。 コード修正は、電球アイコン メニューに、他の種類のクイック アクションと共に示されます。 これらのコード修正については、「共通のクイック アクション」を参照してください。

アナライザーの違反とクイック アクションのコード修正

アナライザーの重要度レベルの構成

アナライザー ルールの重要度 ("診断") は、EditorConfig ファイル で、または 電球メニューから構成できます。

ビルド時にコードを検査し、入力と同時にライブにするようにアナライザーを構成することもできます。 現在のドキュメントのみで実行するか、開いているすべてのドキュメントで実行するか、またはソリューション全体で実行するようにライブ コード分析のスコープを構成できます。 「方法:ライブ コード分析スコープを構成する」をご覧ください。

ヒント

コード アナライザーからのビルド時のエラーと警告が表示されるのは、アナライザーが NuGet パッケージとしてインストールされている場合のみです。 組み込みアナライザー (たとえば、IDE0067 や IDE0068) はビルド時には実行されません。

NuGet パッケージと VSIX 拡張機能

NuGet パッケージを使用して、すべてのプロジェクトに外部アナライザーをインストールできます。 また、Visual Studio の拡張機能として使用できるものもあります。この場合、Visual Studio で開くすべてのソリューションに適用されます。 アナライザーをインストールするこれら 2 つの方法には、主な動作の違いがいくつかあります。

スコープ

Visual Studio 拡張機能としてアナライザーをインストールする場合は、ソリューション レベルで Visual Studio のすべてのインスタンスに適用されます。 NuGet パッケージとしてアナライザーをインストールする (推奨される方法) 場合、NuGet パッケージがインストールされたプロジェクトにのみ適用されます。 チーム環境では、NuGet パッケージとしてインストールされたアナライザーは、そのプロジェクトで作業する すべての開発者 のスコープ内にあります。

注意

ファースト パーティのアナライザーは、.NET SDK 内にも付属しています。 可能な場合は、Microsoft.CodeAnalysis.NetAnalyzers NuGet パッケージをインストールするのではなく、.NET SDK からこれらのアナライザーを有効にすることをお勧めします。 .NET SDK からアナライザーを有効にした場合は、SDK を更新するとすぐに、アナライザーのバグ修正と新しいアナライザーが自動的に取得されるようになります。 詳細については、「ファーストパーティの .NET アナライザーを有効またはインストールする」を参照してください。

ビルド エラー

コマンド ラインを使用して、または継続的インテグレーション (CI) ビルドの一部としてなど、ビルド時にルールを適用するには、次のいずれかのオプションを選択します。

  • .NET SDK に既定でアナライザーが含まれている .NET 5.0 以降のプロジェクトを作成します。 コード分析は、.NET 5.0 以降を対象とするプロジェクトで既定で有効になっています。 EnableNETAnalyzers プロパティを true に設定すると、以前の .NET バージョンを対象とするプロジェクトでコード分析を有効にできます。

  • アナライザーを NuGet パッケージとしてインストールします。 拡張機能としてアナライザーをインストールする場合、アナライザーの警告とエラーはビルド レポートに示されません。

次のイメージは、アナライザー ルール違反を含むプロジェクトのビルドからのコマンドライン ビルド出力を示しています。

ルール違反を示す MSBuild 出力

ルールの重要度

Visual Studio 拡張機能としてインストールされたアナライザーからルールの重要度を構成することはできません。 ルールの重要度を構成するには、NuGet パッケージとしてアナライザーをインストールします。

次のステップ

関連項目