.NET Compiler Platform (Roslyn) アナライザーを使用したコード分析
.NET Compiler Platform (Roslyn) アナライザーを使用して、C# または Visual Basic コードのスタイル、品質、保守容易性、設計、その他の問題を検査します。 この検査または分析は、開いているすべてのファイルの設計時に行われます。
アナライザーは、次のグループに分類されます。
-
これらのアナライザーは、Visual Studio に組み込まれています。 アナライザーの診断 ID (またはコード) は、IDE0001 のように、IDExxxx の形式です。 テキスト エディターのオプション ページまたは EditorConfig ファイルで、ユーザー設定を構成できます。 .NET 5.0 以降、コード スタイル アナライザーは .NET SDK に含まれており、ビルドの警告またはエラーとして厳密に適用できます。 詳細については、.NET ソース コード分析の概要に関する記事を参照してください。
-
これらのアナライザーは .NET 5.0 以降の SDK に含まれており、既定で有効になっています。 アナライザーの診断 ID (またはコード) は、CA1822 のように、CAxxxx の形式です。 詳細については、.NET コード品質分析の概要に関するページを参照してください。
外部アナライザー
外部アナライザーの例としては、StyleCop、Roslynator、xUnit Analyzer、Sonar Analyzer があります。 NuGet パッケージまたは Visual Studio 拡張機能として、これらのアナライザーをインストールできます。
アナライザーの重要度レベル
各 Roslyn アナライザー ルールまたは診断には、プロジェクトに合わせてカスタマイズできる規定の重大度と抑制の状態があります。
重大度レベルには、エラー、警告、提案、サイレント、なし、および既定値が含まれます。 詳細と動作については、「重大度レベルの構成」を参照してください。
規則違反
アナライザーは、アナライザー ルール違反を検出した場合、[エラー一覧] ウィンドウとコード エディターで報告します。
次のスクリーンショットは、[エラー一覧] ウィンドウで報告されたルール違反を示しています。 エラー一覧に報告されるアナライザーの違反は、ルールの重要度レベルの設定と一致します。
また、アナライザーのルール違反は、コード エディターで問題を起こしているコードの下に波線として表示されます。 たとえば、次のスクリーンショットは 3 つの違反 (1 つのエラー (赤い波線)、1 つの警告 (緑の波線)、および 1 つの候補 (3 つの灰色の点) を示しています。
コード修正
多くの診断には、1 つ以上のコード修正が関連付けられており、これを適用してルール違反を修正できます。 コード修正は、電球アイコン メニューに、他の種類のクイック アクションと共に示されます。 これらのコード修正についての詳細は、「共通のクイック アクション」を参照してください。
アナライザーの重要度レベルの構成
アナライザー ルールの重要度は、EditorConfig ファイルで、または電球メニューから構成できます。
ビルド時および入力時に、コードを検査するようにアナライザーを構成することもできます。 現在のドキュメントのみで実行するか、開いているすべてのドキュメントで実行するか、またはソリューション全体で実行するようにライブ コード分析のスコープを構成できます。 詳細については、「.NET 用コード分析ルールを構成する」を参照してください。
ヒント
コード アナライザーからのビルド時のエラーと警告が表示されるのは、アナライザーが NuGet パッケージとしてインストールされている場合のみです。 組み込みアナライザー (たとえば、IDE0067 や IDE0068) はビルド時には実行されません。
外部コード アナライザーをインストールする
Visual Studio には、常にアクティブな Roslyn アナライザーのコア セットが含まれています。 より多くのコード アナライザーが必要な場合は、NuGet パッケージを使用して、すべてのプロジェクトに外部アナライザーをインストールできます。 また、Visual Studio .vsix の拡張機能として使用できるアナライザーもあります。この場合、Visual Studio で開くすべてのソリューションに適用されます。 これらの 2 つの異なるタイプのアナライザーのインストールについては、「コード アナライザーのインストール」を参照してください。
範囲
NuGet パッケージとしてアナライザーをインストールする (推奨される方法) 場合、NuGet パッケージがインストールされているプロジェクトにのみ適用されます。 それ以外で、Visual Studio 拡張機能としてアナライザーをインストールする場合は、ソリューション レベルで Visual Studio のすべてのインスタンスに適用されます。 チーム環境では、NuGet パッケージとしてインストールしたアナライザーは、そのプロジェクトで作業するすべての開発者 のスコープ内にあります。
Note
ファースト パーティのアナライザーは、.NET SDK 内に付属しています。 Microsoft.CodeAnalysis.NetAnalyzers
NuGet パッケージとしてインストールするのではなく、.NET SDK からこれらのアナライザーを有効にすることをお勧めします。 .NET SDK からアナライザーを有効にした場合は、SDK を更新するとすぐに、アナライザーのバグ修正と新しいアナライザーが自動的に取得されるようになります。 アナライザーの詳細については、「ファースト パーティの .NET アナライザーを有効またはインストールする」を参照してください。
ビルド エラー
コマンド ラインまたは継続的インテグレーション (CI) ビルドを使用して、ビルド時にルールを適用するには、次のいずれかのオプションを選択します。
.NET 5.0 以降のプロジェクトを作成します。これにより、既定でコード分析が有効になります。 以前のバージョンの .NET を対象とするプロジェクトでコード分析を有効にするには、EnableNETAnalyzers プロパティを
true
に設定します。アナライザーを NuGet パッケージとしてインストールします。 Visual Studio の拡張機能としてアナライザーをインストールした場合、アナライザーの警告とエラーはビルド レポートに示されません。
次のスクリーンショットは、アナライザー ルール違反を含むプロジェクトのビルドからのコマンドライン ビルド出力を示しています。
ルールの重要度
アナライザー ルールの重要度を構成する場合、NuGet パッケージとしてアナライザーをインストールする必要があります。 Visual Studio 拡張機能としてインストールされたアナライザーからルールの重要度を構成することはできません。