从旧分析(FxCop)迁移到源分析(.NET 分析器)

.NET 编译器平台(“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>

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

配置

若要详细了解如何配置 .NET 分析器,