Visual Studio では、マネージド コードのコード分析を 2 つの方法で実行できます。 レガシ分析 (マネージド アセンブリの FxCop 静的分析とも呼ばれます) と、より最新の .NET コンパイラ プラットフォーム ベースの コード アナライザーを使用します。 このトピックでは、レガシ分析について説明します。 .NET コンパイラ プラットフォームベースのコード分析の詳細については、「 .NET コンパイラ プラットフォーム ベースのアナライザーの概要」を参照してください。
マネージド コードのコード分析は、マネージド アセンブリを分析し、 .NET デザイン ガイドラインに記載されているプログラミング規則や設計規則の違反など、アセンブリに関する情報を報告します。
分析ツールは、分析中に実行されるチェックを警告メッセージとして表します。 警告メッセージは、関連するプログラミングと設計の問題を識別し、可能な場合は、問題の修正方法に関する情報を提供します。
注
Visual Studio の .NET Core および .NET Standard プロジェクトでは、レガシ分析 (静的コード分析) はサポートされていません。 msbuild の一部として .NET Core または .NET Standard プロジェクトでコード分析を実行すると、次のようなエラーが表示されます:CA0055: <your.dll>のプラットフォームを識別できませんでした。 .NET Core または .NET Standard プロジェクトでコードを分析するには、代わりに コード アナライザーを 使用します。
IDE (統合開発環境) の統合
プロジェクトでコード分析を手動または自動で実行できます。
プロジェクトをビルドするたびにコード分析を実行するには、プロジェクトの [コード分析 ] プロパティ ページでオプションを選択します。 詳細については、「 方法: 自動コード分析を有効または無効にする」を参照してください。
プロジェクトでコード分析を手動で実行するには、メニュー バーから [分析>コード分析の実行><project でのコード分析の実行>を選択します。
規則集
マネージド コードのコード分析ルールは、 ルール セットにグループ化されます。 Microsoft 標準規則セットのいずれかを使用することも、特定のニーズを満たす カスタム規則セットを作成 することもできます。
警告を表示しない
多くの場合、警告が適用不可であることを示すのが役立ちます。 これにより、開発者や後でコードを確認する可能性がある他のユーザーに、警告が調査され、抑制または無視されたことが通知されます。
警告のソース内抑制は、カスタム属性を使用して実装されます。 警告を抑制するには、次の例に示すように、ソース コードに属性 SuppressMessage
を追加します。
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1039:ListsAreStrongTyped")]
Public class MyClass
{
// code
}
詳細については、「警告を表示しない」を参照してください。
注
プロジェクトを Visual Studio 2019 に移行すると、突然大量のコード分析の警告が表示されることがあります。 警告を修正する準備ができていない場合は、[分析]、[Build]、[>] の順に選択して、警告をすべて抑制できます。
チェックイン ポリシーの一部としてコード分析を実行する
組織では、すべてのチェックインが特定のポリシーを満たすことを要求できます。 特に、次のポリシーに従っていることを確認する必要があります。
チェックイン中のコードにビルド エラーはありません。
コード分析は、最新のビルドの一部として実行されます。
これは、チェックイン ポリシーを指定することで実現できます。 詳細については、「 プロジェクト チェックイン ポリシーを使用したコード品質の強化」を参照してください。
チーム ビルドの統合
ビルド システムの統合機能を使用して、ビルド プロセスの一部として分析ツールを実行できます。 詳細については、「Azure Pipelines」を参照してください。