Uso de conjuntos de reglas para agrupar reglas de análisis de código

Al configurar el análisis de código en Visual Studio, puede elegir en una lista de conjuntos de reglas integrados. Un conjunto de reglas es una agrupación de reglas de análisis de código que identifican problemas concretos y condiciones específicas del proyecto. Por ejemplo, puede aplicar un conjunto de reglas diseñado para examinar el código de las API disponibles públicamente. También puede aplicar un conjunto de reglas que incluya todas las reglas disponibles.

Los conjuntos de reglas se pueden personalizar. Para ello, es preciso agregar, eliminar o modificar los niveles de gravedad de las reglas para que aparezcan como advertencias o errores en la Lista de errores. Los conjuntos de reglas personalizados pueden satisfacer una necesidad de su entorno de desarrollo determinado. Cuando se personaliza un conjunto de reglas, el editor de conjuntos de reglas proporciona herramientas de búsqueda y filtrado que sirven de ayuda en el proceso.

Los conjuntos de reglas están disponibles para el análisis de código administrado, el análisis heredado del código administrado y el análisis de código de C++.

Nota

A partir de la versión 16.3 de Visual Studio 2019, puede usar los archivos de EditorConfig para configurar reglas para el análisis de código fuente de .NET, pero no para el análisis heredado. Para más información, consulte la sección EditorConfig frente a conjuntos de reglas de las preguntas frecuentes.

Formato de los conjuntos de reglas

Los conjuntos de reglas se especifican en formato XML en un archivo .ruleset. Las reglas, que constan de un identificador y una acción, se agrupan por un identificador de analizador y un espacio de nombres en el archivo.

El contenido de un archivo .ruleset tiene un aspecto similar al de este XML:

<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>

Sugerencia

Es más fácil editar un conjunto de reglas en el Editor gráfico de conjuntos de reglas que hacerlo manualmente.

Especificación de un conjunto de reglas para un proyecto

El conjunto de reglas para un proyecto se especifica mediante la propiedad CodeAnalysisRuleSet en el archivo del proyecto de Visual Studio. Por ejemplo:

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