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

.NET 编译器平台(“Roslyn”)分析器的源分析取代了托管代码 的旧分析 。 许多传统分析 (FxCop) 规则已改写为源分析器。

在 Visual Studio 2019 16.8 和 .NET 5.0 之前,这些分析器作为 Microsoft.CodeAnalysis.FxCopAnalyzersNuGet 包提供。

从 Visual Studio 2019 16.8 和 .NET 5.0 开始,这些分析器 包含在 .NET SDK 中。 如果不想移动到 .NET 5+ SDK 或首选基于 NuGet 包的模型,则分析器也可用于 Microsoft.CodeAnalysis.NetAnalyzersNuGet 包。 你可能更喜欢基于包的模型进行按需版本更新。

注释

第一方 .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.NetAnalyzers 相比 Microsoft.CodeAnalysis.FxCopAnalyzers,启用其他规则要保守得多。 与 FxCopAnalyzers 包不同,它只有一些默认 启用为生成警告的正确性规则。 可以通过自定义 AnalysisMode MSBuild 属性来启用其他规则。 例如,将属性 AllEnabledByDefault 设置为将默认启用所有适用的 CA 规则作为生成警告。

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