从传统分析 (FxCop) 迁移到源代码分析(.NET 分析器)

.NET Compiler Platform(“Roslyn”)分析器的源代码分析取代了托管代码的传统分析。 对于更新的项目模板(如 .NET Core 和 .NET Standard 项目),传统分析不可用。

许多传统分析 (FxCop) 规则已经针对 .NET 分析器(一组 Roslyn 代码分析器)进行了重写。 Roslyn 分析器在编译器执行期间运行基于源代码的分析。 报告分析器结果以及编译器结果。

有关传统分析与源代码分析之间的差异的详细信息,请参阅以下内容:

迁移

若要迁移到源代码分析,请执行以下操作:

  1. 启用或安装 .NET 分析器。 与传统的分析规则冲突一样,源代码分析冲突会出现在 Visual Studio 的“错误列表”窗口中。 此外,源代码分析冲突也会在代码编辑器中显示,表现为违规代码下有波浪线。 规则的严重性设置决定波浪线的颜色。 若要查看移植到新 .NET 分析器的规则的状态,请参阅移植和取消移植规则

    注意

    在 Visual Studio 2019 16.8 和 .NET 5.0 之前的版本中,这些分析器以 Microsoft.CodeAnalysis.FxCopAnalyzersNuGet 包的形式提供。 从 Visual Studio 2019 16.8 和 .NET 5.0 开始,这些分析器包含在 .NET SDK 中。 它们也以 Microsoft.CodeAnalysis.NetAnalyzersNuGet 包的形式提供。 有关详细信息,请参阅从 FxCop 分析器迁移到 .NET 分析器

  2. 若要解决 CA0507,请确保已为项目禁用旧版代码分析。 在项目文件中,将 RunCodeAnalysis 属性设置为 false:

    <RunCodeAnalysis>false</RunCodeAnalysis>

    或者,打开“项目属性”>“代码分析”,并禁用“生成时运行”设置。

Configuration

若要详细了解如何配置 .NET 分析器,请执行以下操作: