从 NuGet FxCop 分析器迁移到 .NET 分析器

.NET Compiler Platform(“Roslyn”)分析器的源代码分析取代了托管代码的传统分析。 许多传统分析 (FxCop) 规则已被重新编写为源分析器。

在 Visual Studio 2019 16.8 和 .NET 5.0 之前的版本中,这些分析器作为 Microsoft.CodeAnalysis.FxCopAnalyzers NuGet 包提供。

从 Visual Studio 2019 16.8 和 .NET 5.0 开始,这些分析器包含在 .NET SDK 中。 如果不想迁移到 .NET 5+ SDK,或者更喜欢基于 NuGet 包的模型,则 Microsoft.CodeAnalysis.NetAnalyzers NuGet 包中也提供了这些分析器。 对于按需版本更新,你可能更倾向于使用基于包的模型。

注意

第一方 .NET 分析器与目标平台无关。 即,项目不需要面向特定的 .NET 平台。 分析器适用于面向 net5.0 及早期 .NET 版本(如 netcoreappnetstandardnet472)的项目。

迁移步骤

从版本 3.3.2 开始,不建议使用 Microsoft.CodeAnalysis.FxCopAnalyzers NuGet 包。 请按照以下步骤将项目或解决方案从 Microsoft.CodeAnalysis.FxCopAnalyzers 迁移到 .NET 分析器:

  1. 卸载 Microsoft.CodeAnalysis.FxCopAnalyzers NuGet 包

  2. 启用或安装 .NET 分析器。 请注意,无需更改项目的目标平台。

  3. 启用其他规则:Microsoft.CodeAnalysis.NetAnalyzersMicrosoft.CodeAnalysis.FxCopAnalyzers 相比要传统得多。 与 FxCopAnalyzers 包不同,它只有几个正确性规则,这些规则默认作为生成警告启用。 可以通过自定义 AnalysisMode MSBuild 属性来启用其他规则。 例如,如果将属性设置为 AllEnabledByDefault,将默认启用所有适用的 CA 规则作为生成警告。

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