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:
Analizadores de estilo de código
Estos analizadores están integrados en Visual Studio. El identificador de diagnóstico del analizador o el formato de código es IDExxxx, por ejemplo, IDE0001. Puede configurar las preferencias en la página de opciones del editor de texto o en un archivo EditorConfig. A partir de .NET 5.0, los analizadores del estilo de código se incluyen en el SDK de .NET y se pueden aplicar estrictamente como errores o advertencias de compilación. Para más información, consulte Introducción al análisis de código fuente de .NET.
Analizadores de calidad del código
Estos analizadores se incluyen en el SDK de .NET 5.0 y versiones posteriores, y están habilitados de manera predeterminada. El identificador de diagnóstico del analizador o el formato de código es CAxxxx, por ejemplo, CA1822. Para más información, consulte la información general del análisis de la calidad del código .NET.
Analizadores externos
Algunos ejemplos de analizadores externos son StyleCop, Roslynator, xUnit Analyzers y Sonar Analyzer. Puede instalar estos analizadores como un paquete NuGet o una extensión de Visual Studio.
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:
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):
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.
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 paquete NuGet Microsoft.CodeAnalysis.NetAnalyzers
. 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:
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.