ルール セットをカスタマイズする
適用対象:Visual Studio
Visual Studio for Mac
Visual Studio Code
コード分析でプロジェクトの特定のニーズを満たすために、カスタム ルール セットを作成できます。
既存のルール セットからカスタム ルール セットを作成する
カスタム ルール セットを作成するには、ルール セット エディターで組み込みのルール セットを開きます。 そこから、特定のルールを追加または削除したり、ルールに違反したときに実行されるアクション (警告やエラーの表示など) を変更したりできます。
ソリューション エクスプローラーでプロジェクトを右クリックし、 [プロパティ] を選択します。
[プロパティ] ページで [コード分析] タブを選択します。
[アクティブな規則] ドロップダウン リストで、次のいずれかを行います。
カスタマイズするルール セットを選択します。
- または -
[<参照>] を選んで、一覧にない、既存の規則セットを指定します。
[開く] を選択して、ルール セット エディターでルールを表示します。
注意
.NET Core または .NET Standard プロジェクトがある場合、プロジェクトのプロパティの [コード分析] タブで同じオプションがサポートされていないため、プロセスが少し異なります。 手順に従って、定義済みのルール セットをプロジェクトにコピーし、アクティブなルール セットとして設定します。 ルール セットをコピーしたら、ソリューション エクスプローラーからそれを開いて、Visual Studio のルール セット エディターで編集できます。
新しいルール セットを作成する
新しいルール セット ファイルは、 [新しいファイル] ダイアログから作成できます。
[ファイル]>[新規作成]>[ファイル] の順に選択するか、Ctrl+N キーを押します。
[新しいファイル] ダイアログ ボックスで、左側の [全般] カテゴリを選択し、 [コード分析規則セット] を選択します。
[Open] を選択します。
ルール セット エディターに新しい .ruleset ファイルが開きます。
複数のルール セットからカスタム ルール セットを作成する
注意
次の手順は、 [コード分析] プロパティ タブの同じ機能がサポートされていない .NET Core または .NET Standard プロジェクトには適用されません。
ソリューション エクスプローラーでプロジェクトを右クリックし、 [プロパティ] を選択します。
[プロパティ] ページで [コード分析] タブを選択します。
[アクティブな規則] から [<複数の規則セットを選択する>] を選びます。
[規則セットの追加と削除] ダイアログ ボックスで、新しいルール セットに含めるルール セットを選択します。
[名前を付けて保存] を選択し、 .ruleset ファイルの名前を入力して、 [保存] を選択します。
[この規則セットを実行] の一覧で、新しいルール セットが選択されます。
[開く] を選択して、ルール セット エディターで新しいルール セットを開きます。
ルールの優先順位
ルール セットに重大度が異なる同じルールが 2 回以上示されていると、コンパイラはエラーを生成します。 次に例を示します。
<RuleSet Name="Rules for ClassLibrary21" Description="Code analysis rules for ClassLibrary21.csproj." ToolsVersion="15.0"> <Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed"> <Rule Id="CA1021" Action="Warning" /> <Rule Id="CA1021" Action="Error" /> </Rules> </RuleSet>
ルール セットに "同じ" 重大度の同じルールが 2 回以上示されている場合、 [エラー一覧] に次の警告が表示されることがあります。
CA0063: 規則セット ファイル '[お使いのファイル].ruleset' か、またはその依存先の規則セット ファイルの 1 つを読み込めませんでした。 ファイルが規則セットのスキーマに準拠していません。
Include タグを使用してルール セットに子ルール セットが含まれており、子と親のルール セットに重大度が異なる同じルールが示されている場合は、親ルール セットの重大度が優先されます。 次に例を示します。
<!-- Parent rule set --> <?xml version="1.0" encoding="utf-8"?> <RuleSet Name="Rules for ClassLibrary21" Description="Code analysis rules for ClassLibrary21.csproj." ToolsVersion="15.0"> <Include Path="classlibrary_child.ruleset" Action="Default" /> <Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed"> <Rule Id="CA1021" Action="Warning" /> <!-- Overrides CA1021 severity from child rule set --> </Rules> </RuleSet> <!-- Child rule set --> <?xml version="1.0" encoding="utf-8"?> <RuleSet Name="Rules from child" Description="Code analysis rules from child." ToolsVersion="15.0"> <Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed"> <Rule Id="CA1021" Action="Error" /> </Rules> </RuleSet>
名前と説明
エディターで開いているルール セットの表示名を変更するには、メニュー バーで [表示]>[プロパティ ウィンドウ] の順に選択して、 [プロパティ] ウィンドウを開きます。 [名前] ボックスに表示名を入力します。 また、ルール セットの説明を入力することもできます。
次のステップ
ルール セットを用意できたので、次に、ルールを追加または削除したり、ルール違反の重大度を変更したりして、ルールをカスタマイズします。