Migración de los analizadores de FxCop a los de .NET

El análisis de código fuente de los analizadores de .NET Compiler Platform ("Roslyn") reemplaza el análisis heredado del código administrado. Muchas de las reglas de análisis heredado (FxCop) ya se han reescrito como analizadores de orígenes.

Antes de Visual Studio 2019 16.8 y .NET 5.0, estos analizadores se incluían como un Microsoft.CodeAnalysis.FxCopAnalyzerspaquete NuGet.

A partir de Visual Studio 2019 16.8 y .NET 5.0, estos analizadores se incluyen con el SDK de .NET. Si no quiere cambiar al SDK de .NET 5 o versiones posteriores, o si prefiere un modelo basado en paquetes NuGet, los analizadores también están disponibles en el Microsoft.CodeAnalysis.NetAnalyzerspaquete NuGet. Es posible que prefiera un modelo basado en paquetes para las actualizaciones de versión a petición.

Nota

Los analizadores de .NET propios son independientes de la plataforma de destino. Es decir, el proyecto no necesita tener como destino una plataforma .NET específica. Los analizadores funcionan para los proyectos que tienen net5.0 como destino, así como las versiones anteriores de .NET, como netcoreapp, netstandard y net472.

Pasos de migración

A partir de la versión 3.3.2, el paquete NuGet Microsoft.CodeAnalysis.FxCopAnalyzers se ha puesto en desuso. Realice los pasos siguientes para migrar el proyecto o la solución de Microsoft.CodeAnalysis.FxCopAnalyzers a los analizadores de .NET:

  1. Desinstalación del paquete NuGet Microsoft.CodeAnalysis.FxCopAnalyzers

  2. Habilite o instale los analizadores de .NET. Tenga en cuenta que no es necesario cambiar la plataforma de destino del proyecto.

  3. Habilite reglas adicionales: Microsoft.CodeAnalysis.NetAnalyzers es mucho más conservador en comparación con Microsoft.CodeAnalysis.FxCopAnalyzers. A diferencia del paquete FxCopAnalyzers, solo tiene algunas reglas de corrección que están habilitadas de forma predeterminada como advertencias de compilación. Para habilitar reglas adicionales, personalice la propiedad AnalysisMode de MSBuild. Por ejemplo, al establecer la propiedad en AllEnabledByDefault se habilitarán todas las reglas de CA aplicables como advertencias de compilación de forma predeterminada.

    <PropertyGroup>
      <AnalysisMode>AllEnabledByDefault</AnalysisMode>
    </PropertyGroup>