Cómo habilitar los analizadores .NET integrados

 C Programming >> Programación C >  >> Tags >> .NET
Cómo habilitar los analizadores .NET integrados

.NET Analyzers (que reemplaza a FxCop) se envía con el SDK de .NET 5. Si tiene instalado el SDK de .NET 5, puede habilitar los analizadores de .NET agregando propiedades al archivo .csproj. Puede usar esto incluso si su proyecto no tiene como objetivo .NET 5. Si no tiene instalado el SDK de .NET 5, pero desea usar .NET Analyzers, puede instalarlo con un paquete nuget.

En este artículo, mostraré ambas formas de habilitar los analizadores .NET y luego mostraré una forma sencilla de verificar que funciona.

Si está instalado el SDK de .NET 5

Si tiene instalado el SDK de .NET 5, puede habilitar los analizadores de .NET integrados agregando las siguientes propiedades al archivo .csproj:

<PropertyGroup>
	<OutputType>Exe</OutputType>
	<TargetFramework>netcoreapp3.1</TargetFramework>
	<EnableNETAnalyzers>true</EnableNETAnalyzers>
	<AnalysisMode>AllEnabledByDefault</AnalysisMode>
	<AnalysisLevel>latest</AnalysisLevel>
</PropertyGroup>
Code language: HTML, XML (xml)

Tuve que agregar la propiedad AnalysisLevel al .csproj explícitamente para que funcionara. La pestaña Análisis de código de propiedades del proyecto muestra una configuración de "Nivel de análisis", pero no parece funcionar (probablemente se trate de un error en VS2019 16.8). Sin embargo, poner explícitamente la configuración en el archivo .csproj hizo que funcionara.

Recomiendo usar AnalysisMode=AllEnabledByDefault al principio y luego desactivar las reglas individuales que no desea a medida que aparecen.

Nota:puede usar el analizador del SDK de .NET 5 incluso si su proyecto no tiene como objetivo .NET 5.

Si no tiene instalado el SDK de .NET 5

Como no tiene instalado el SDK de .NET 5, pero quiere los analizadores de .NET, puede instalar el paquete nuget:

Install-Package Microsoft.CodeAnalysis.NetAnalyzersCode language: PowerShell (powershell)

Luego agregue la siguiente configuración al archivo .csproj:

<PropertyGroup>
	<OutputType>Exe</OutputType>
	<TargetFramework>netcoreapp3.1</TargetFramework>
	<AnalysisMode>AllEnabledByDefault</AnalysisMode>
	<AnalysisLevel>latest</AnalysisLevel>
</PropertyGroup>
Code language: HTML, XML (xml)

Nota:Dado que tengo instalado .NET 5 SDK, no estoy 100 % seguro de si esto es todo lo que necesita hacer para que funcione. Si sigue esta ruta y no funciona, deje un comentario.

Comprueba si el análisis de código funciona

Después de habilitar .NET Analyzers, puede verificar si funciona agregando intencionalmente un código que activará una advertencia de análisis de código, como la siguiente enumeración:

public enum Animals
{
	Dog = 1,
	Cat = 2
}
Code language: C# (cs)

En caso de duda, reconstruya el proyecto. Si todo funciona según lo previsto, debería ver la siguiente advertencia de análisis de código: