Personalización de un conjunto de reglas

Puede crear un conjunto de reglas personalizadas para satisfacer las necesidades concretas del proyecto para el análisis de código.

Creación de un conjunto de reglas personalizadas a partir de un conjunto de reglas existente

Para crear un conjunto de reglas personalizadas, puede abrir un conjunto de reglas integrado en el editor de conjuntos de reglas. Desde allí, puede agregar o quitar reglas específicas y cambiar la acción que se produce cuando se infringe una regla; por ejemplo, mostrar una advertencia o un error.

  1. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y seleccione Propiedades.

  2. En las páginas Propiedades, seleccione la pestaña Análisis de código.

  3. En la lista desplegable Reglas activas, realice una de las acciones siguientes:

    • Elija el conjunto de reglas que quiera personalizar.

      O bien

    • Seleccione <Examinar> para especificar un conjunto de reglas existente que no esté en la lista.

  4. Seleccione Abrir para mostrar las reglas en el editor de conjuntos de reglas.

Nota

Si tiene un proyecto de .NET Core o .NET Standard, el proceso es un poco distinto porque la pestaña Análisis de código de las propiedades del proyecto no admite las mismas opciones. Siga los pasos para copiar un conjunto de reglas predefinido en el proyecto y establecerlo como conjunto de reglas activo. Después de copiar un conjunto de reglas, puede editarlo en el editor de conjuntos de reglas de Visual Studio si lo abre desde el Explorador de soluciones.

Creación de un conjunto de reglas

Puede crear un nuevo archivo de conjunto de reglas desde el cuadro de diálogo Nuevo archivo:

  1. Seleccione Archivo>Nuevo>Archivo o presione Ctrl+N.

  2. En el cuadro de diálogo Nuevo archivo, seleccione la categoría General que aparece a la izquierda y, a continuación, seleccione Conjunto de reglas de análisis de código.

  3. seleccione Open(Abrir).

    El nuevo archivo .ruleset se abre en el editor de conjuntos de reglas.

Crear un conjunto de reglas personalizadas a partir de varios conjuntos de reglas

Nota

El procedimiento siguiente no se aplica a los proyectos de .NET Core o .NET Standard, que no admiten las mismas características en la pestaña de propiedades Análisis de código.

  1. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y seleccione Propiedades.

  2. En las páginas Propiedades, seleccione la pestaña Análisis de código.

  3. Seleccione <Elegir varios conjuntos de reglas> en Reglas activas.

  4. En el cuadro de diálogo Agregar o quitar conjuntos de reglas, elija los conjuntos de reglas que quiere incluir en el nuevo conjunto de reglas.

    Add or remove rule sets dialog box

  5. Seleccione Guardar como, escriba un nombre para el archivo .ruleset y, a continuación, seleccione Guardar.

    El nuevo conjunto de reglas se selecciona en la lista Ejecutar este conjunto de reglas.

  6. Seleccione Abrir para abrir el nuevo conjunto de reglas en el editor de conjuntos de reglas.

Prioridad de la regla

  • Si la misma regla aparece dos o más veces en un conjunto de reglas con distinta gravedad, el compilador genera un error. Por ejemplo:

    <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>
    
  • Si la misma regla aparece dos o más veces en un conjunto de reglas con la misma gravedad, puede que aparezca la advertencia siguiente en la Lista de errores:

    CA0063: No se pudo cargar el archivo del conjunto de reglas "[your].ruleset" o alguno de sus archivos de conjunto de reglas dependientes. El archivo no se ajusta al esquema del conjunto de reglas.

  • Si el conjunto de reglas incluye un conjunto de reglas secundario mediante una etiqueta Include y los conjuntos de reglas secundarios y primarios muestran la misma regla pero con diferentes gravedades, la gravedad del conjunto de reglas principal tiene prioridad. Por ejemplo:

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

Nombre y descripción

Para modificar el nombre para mostrar de un conjunto de reglas que está abierto en el editor, abra la ventana Propiedades mediante la selección de Ver>Ventana Propiedades en la barra de menús. En el cuadro Nombre, escriba el nombre para mostrar. También puede escribir una descripción para el conjunto de reglas.

Pasos siguientes

Ahora que tiene un conjunto de reglas, el siguiente paso es personalizarlas al agregar o quitar reglas o bien modificar la gravedad de las infracciones de reglas.