Análisis de código mediante analizadores de .NET Compiler Platform (Roslyn)

Los analizadores de .NET Compiler Platform (Roslyn) inspeccionan el estilo, la calidad, el mantenimiento y el diseño del código de C# o de Visual Basic, además de otros problemas. Esta inspección o análisis se produce durante el tiempo de diseño en todos los archivos abiertos.

Los analizadores se dividen en los siguientes grupos:

Niveles de gravedad de los analizadores

Cada diagnóstico o regla del analizador de Roslyn tiene una gravedad y un estado de eliminación predeterminados que se pueden personalizar según el proyecto.

Los niveles de gravedad incluyen: Error, Advertencia, Sugerencia, Silencioso, Ninguno y Predeterminado. Para obtener información detallada y el comportamiento, consulte Configuración de los niveles de gravedad.

Infracciones de reglas

Si un analizador encuentra infracciones de reglas de analizador, las notifica en la ventana Lista de errores y en el editor de código.

En la captura de pantalla siguiente se muestran las infracciones de reglas notificadas en la ventana Lista de errores. Las infracciones de analizador notificadas en la lista de errores coincide con el ajuste del nivel de gravedad de la regla:

Captura de pantalla que muestra las infracciones de analizador en la ventana Lista de errores.

Las infracciones de reglas de analizador también se muestran en el editor de código como líneas de subrayado debajo del código infractor. Por ejemplo, en la imagen siguiente se muestran tres infracciones: un error (línea de subrayado rojo), una advertencia (línea de subrayado verde) y una sugerencia (tres puntos grises):

Captura de pantalla que muestra las marcas de error, advertencia y sugerencia en el editor de código.

Correcciones de código

Muchos diagnósticos tienen una o más correcciones de código asociadas que se pueden aplicar para corregir la infracción de la regla. Las correcciones de código se muestran en el menú del icono de bombilla junto con otros tipos de Acciones rápidas. Para obtener más información sobre las correcciones de código, vea Acciones rápidas comunes.

Captura de pantalla que muestra una infracción del analizador y una corrección de código de acción rápida en el editor de código.

Configuración de los niveles de gravedad de los analizadores

Puede configurar la gravedad de las reglas de los analizadores en un archivo EditorConfig o desde el menú de bombilla.

Los analizadores también se pueden configurar para inspeccionar el código tanto en tiempo de compilación como a medida que escribe. El análisis de código activo se puede configurar para que su ámbito de ejecución sea el documento actual, todos los documentos abiertos o toda la solución. Para obtener más información, vea el artículo Configuración de análisis de código en directo para .NET.

Sugerencia

Los errores y las advertencias de tiempo de compilación de los analizadores de código se muestran solo si los analizadores están instalados como paquetes NuGet. Los analizadores integrados (por ejemplo, IDE0067 e IDE0068) nunca se ejecutan durante una compilación.

Instalación de analizadores de código externo

Visual Studio incluye un conjunto básico de analizadores de Roslyn, que siempre están activos. Si necesita más analizadores de código, puede instalar analizadores externos para cada proyecto a través de un paquete NuGet. Algunos de estos analizadores están disponibles también como una extensión .vsix de Visual Studio, en cuyo caso son válidos en cualquier solución que se abra en Visual Studio. Para obtener información sobre cómo instalar estos dos tipos diferentes de analizadores, consulte Instalación de analizadores de código.

Ámbito

Si instala un analizador como un paquete NuGet, que es el método recomendado, se aplicará únicamente al proyecto donde se haya instalado el paquete NuGet. Si lo instala como una extensión de Visual Studio, se aplicará en el nivel de solución y en todas las instancias de Visual Studio. En entornos de equipo, los analizadores instalados como paquetes NuGet son para todos los desarrolladores que trabajan en ese proyecto.

Nota:

Los analizadores propios también se incluyen en el SDK de .NET. Es preferible habilitar estos analizadores desde el SDK de .NET en lugar de instalarlos como un Microsoft.CodeAnalysis.NetAnalyzerspaquete NuGet. La habilitación de los analizadores desde el SDK de .NET garantiza la obtención automática de las correcciones de errores del analizador y los nuevos analizadores en cuanto se actualiza el SDK. Para obtener más información sobre los analizadores, consulte Habilitación o instalación de analizadores propios de .NET.

Errores de compilación

Para aplicar las reglas en tiempo de compilación, ya sea a través de la línea de comandos o como parte de compilaciones de integración continua (CI), elija una de las siguientes opciones:

  • Cree un proyecto de .NET 5.0 o posterior, el cual habilita el análisis de código de manera predeterminada. Puede habilitar el análisis de código en los proyectos que tengan como destino versiones anteriores de .NET estableciendo la propiedad EnableNETAnalyzers en true.

  • Instale los analizadores como paquete NuGet. Si instala los analizadores como una extensión de Visual Studio, los errores y las advertencias del analizador no se mostrarán en el informe de compilación.

La captura de pantalla siguiente muestra la salida de compilación de línea de comandos de la compilación de un proyecto que contiene una infracción de regla de analizador:

Captura de pantalla que muestra una salida de MSBuild con una infracción de regla en un símbolo del sistema para desarrolladores.

Gravedad de las reglas

Para configurar la gravedad de las reglas del analizador, instale el analizador como paquete NuGet. No se puede configurar la gravedad de las reglas de los analizadores que se hayan instalado como una extensión de Visual Studio.

Pasos siguientes