Share via


Kod çözümleme kurallarını gruplandırmak için kural kümelerini kullanma

Visual Studio'da kod analizini yapılandırırken, yerleşik kural kümeleri listesinden seçim yapabilirsiniz. Kural kümesi, hedeflenen sorunları ve bu proje için belirli koşulları tanımlayan bir kod analizi kuralları grubudur. Örneğin, genel kullanıma açık API'ler için kod taramak üzere tasarlanmış bir kural kümesi uygulayabilirsiniz. Kullanılabilir tüm kuralları içeren bir kural kümesi de uygulayabilirsiniz.

Kuralları ekleyerek veya silerek ya da kural önem derecelerini Hata Listesi'nde uyarı veya hata olarak görünecek şekilde değiştirerek bir kural kümesini özelleştirebilirsiniz. Özelleştirilmiş kural kümeleri, belirli geliştirme ortamınıza yönelik bir gereksinimi karşılayabilir. Bir kural kümesini özelleştirdiğinizde, kural kümesi düzenleyicisi işlemde size yardımcı olacak arama ve filtreleme araçları sağlar.

Kural kümeleri yönetilen kod analizi, yönetilen kodun eski analizi ve C++ kod analizi için kullanılabilir.

Dekont

Visual Studio 2019 sürüm 16.3'den başlayarak EditorConfig dosyalarını kullanarak .NET kaynak kodu analizi kurallarını yapılandırabilirsiniz ancak eski çözümlemeyi yapılandıramayın. Daha fazla bilgi için SSS bölümündeki EditorConfig ve kural kümeleri bölümüne bakın.

Kural kümesi biçimi

Kural kümesi bir .ruleset dosyasında XML biçiminde belirtilir. Kimlik ve eylemden oluşan kurallar, dosyadaki çözümleyici kimliğine ve ad alanına göre gruplandırılır.

.ruleset dosyasının içeriği şu XML'ye benzer:

<RuleSet Name="Rules for Hello World project" Description="These rules focus on critical issues for the Hello World app." ToolsVersion="10.0">
  <Localization ResourceAssembly="Microsoft.VisualStudio.CodeAnalysis.RuleSets.Strings.dll" ResourceBaseName="Microsoft.VisualStudio.CodeAnalysis.RuleSets.Strings.Localized">
    <Name Resource="HelloWorldRules_Name" />
    <Description Resource="HelloWorldRules_Description" />
  </Localization>
  <Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
    <Rule Id="CA1001" Action="Warning" />
    <Rule Id="CA1009" Action="Warning" />
    <Rule Id="CA1016" Action="Warning" />
    <Rule Id="CA1033" Action="Warning" />
  </Rules>
  <Rules AnalyzerId="Microsoft.CodeQuality.Analyzers" RuleNamespace="Microsoft.CodeQuality.Analyzers">
    <Rule Id="CA1802" Action="Error" />
    <Rule Id="CA1814" Action="Info" />
    <Rule Id="CA1823" Action="None" />
    <Rule Id="CA2217" Action="Warning" />
  </Rules>
</RuleSet>

Bahşiş

Grafik Kural Kümesi Düzenleyicisi'nde bir kural kümesini el ile düzenlemekten daha kolaydır.

Proje için kural kümesi belirtme

Bir proje için kural kümesi, Visual Studio proje dosyasındaki CodeAnalysisRuleSet özelliği tarafından belirtilir. Örneğin:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
  ...
  <CodeAnalysisRuleSet>HelloWorld.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>