ソース コード分析の概要
適用対象:Visual Studio
Visual Studio for Mac
Visual Studio Code
.NET Compiler Platform (Roslyn) アナライザーを使用して、C# または Visual Basic コードのスタイル、品質、保守容易性、設計、その他の問題を検査します。 この検査または分析は、開いているすべてのファイルの設計時に行われます。
アナライザーは、次のグループに分類されます。
コード スタイル アナライザーは、Visual Studio に組み込まれています。 アナライザーの診断 ID (またはコード) は、IDE0001 のように、IDExxxx の形式です。 テキスト エディターのオプション ページまたは EditorConfig ファイルで、ユーザー設定を構成できます。 .NET 5.0 以降、コード スタイル アナライザーは .NET SDK に含まれており、ビルドの警告またはエラーとして厳密に適用できます。 詳細については、.NET ソース コード分析の概要に関する記事を参照してください。
コード品質アナライザーが .NET 5 SDK に含まれるようになり、既定で有効になりました。 アナライザーの診断 ID (またはコード) は、CA1822 のように、CAxxxx の形式です。 詳細については、.NET コード品質分析の概要に関するページを参照してください。
StyleCop、Roslynator、XUnit Analyzers、Sonar Analyzer などの外部アナライザーを、NuGet パッケージまたは Visual Studio 拡張機能としてインストールできます。
アナライザーの重要度レベル
各アナライザーには、次の重要度レベルのいずれかがあります。
重要度 (ソリューション エクスプローラー) | 重要度 (EditorConfig ファイル) | ビルド時の動作 | エディターの動作 |
---|---|---|---|
エラー | error |
違反は、エラー一覧とコマンドラインのビルド出力に "エラー" として表示され、ビルドが失敗します。 | 問題を起こしているコードには赤色の波線が引かれ、スクロール バーに小さい赤色のボックスが示されます。 |
警告 | warning |
違反は、エラー一覧とコマンドラインのビルド出力に "警告" として表示されますが、ビルドが失敗することはありません。 | 問題を起こしているコードには緑色の波線が引かれ、スクロール バーに小さい緑色のボックスが示されます。 |
Info | suggestion |
違反は、エラー一覧とコマンドラインに "メッセージ" として表示され、コマンドラインのビルド出力には表示されません。 | 問題を起こしているコードには灰色の波線が引かれ、スクロール バーに小さい灰色のボックスが示されます。 |
非表示 | silent |
ユーザーに表示されません。 | ユーザーに表示されません。 ただし、診断は IDE 診断エンジンに報告されます。 |
なし | none |
完全に抑制されます。 | 完全に抑制されます。 |
Default | default |
ルールの既定の重要度に対応します。 ルールの既定値を確認するには、プロパティ ウィンドウを調べます。 | ルールの既定の重要度に対応します。 |
アナライザーでルール違反が見つかった場合は、コード エディターでは問題のあるコードの下の "波線" として、また [エラー一覧] ウィンドウで報告されます。
エラー一覧に報告されるアナライザーの違反は、ルールの重要度レベルの設定と一致します。 また、アナライザーの違反は、コード エディター内の問題を起こしているコードの下に波線で示されます。 次の図は、3 つの違反 (1 つのエラー (赤色の波線)、1 つの警告 (緑色の波線)、1 つの候補 (灰色の 3 つの点)) を示しています。
多くのアナライザー ルール ("診断") には、1 つ以上の "コード修正" が関連付けられており、これを適用してルール違反を修正できます。 コード修正は、電球アイコン メニューに、他の種類のクイック アクションと共に示されます。 これらのコード修正については、「共通のクイック アクション」を参照してください。
アナライザーの重要度レベルの構成
アナライザー ルールの重要度 ("診断") は、EditorConfig ファイル で、または 電球メニューから構成できます。
ビルド時にコードを検査し、入力と同時にライブにするようにアナライザーを構成することもできます。 現在のドキュメントのみで実行するか、開いているすべてのドキュメントで実行するか、またはソリューション全体で実行するようにライブ コード分析のスコープを構成できます。 「方法: ライブ コード分析のスコープを構成する」 を参照してください。
ヒント
コード アナライザーからのビルド時のエラーと警告が表示されるのは、アナライザーが NuGet パッケージとしてインストールされている場合のみです。 組み込みアナライザー (たとえば、IDE0067 や IDE0068) はビルド時には実行されません。
NuGet パッケージと VSIX 拡張機能
NuGet パッケージを使用して、すべてのプロジェクトに外部アナライザーをインストールできます。 また、Visual Studio の拡張機能として使用できるものもあります。この場合、Visual Studio で開くすべてのソリューションに適用されます。 アナライザーをインストールするこれら 2 つの方法には、主な動作の違いがいくつかあります。
スコープ
Visual Studio 拡張機能としてアナライザーをインストールする場合は、ソリューション レベルで Visual Studio のすべてのインスタンスに適用されます。 NuGet パッケージとしてアナライザーをインストールする (推奨される方法) 場合、NuGet パッケージがインストールされたプロジェクトにのみ適用されます。 チーム環境では、NuGet パッケージとしてインストールされたアナライザーは、そのプロジェクトで作業するすべての開発者 のスコープ内にあります。
Note
ファースト パーティのアナライザーは、.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 パッケージとしてインストールします。 拡張機能としてアナライザーをインストールする場合、アナライザーの警告とエラーはビルド レポートに示されません。
次のイメージは、アナライザー ルール違反を含むプロジェクトのビルドからのコマンドライン ビルド出力を示しています。
ルールの重要度
Visual Studio 拡張機能としてインストールされたアナライザーからルールの重要度を構成することはできません。 ルールの重要度を構成するには、NuGet パッケージとしてアナライザーをインストールします。