Visual Studio 中托管代码的遗留分析概述

Visual Studio 可以通过两种方式对托管代码执行代码分析:使用 旧分析(也称为托管程序集的 FxCop 静态分析),以及使用更现代的基于 .NET 编译器平台 的代码分析器。 本主题涵盖遗留分析。 若要了解有关基于 .NET 编译器平台的代码分析的详细信息,请参阅 基于 .NET 编译器平台的分析器概述

托管代码的代码分析会分析托管程序集,并报告有关程序集的信息,例如违反 .NET 设计指南中设置的编程和设计规则。

分析工具在分析过程中将执行的检查表示为警告消息。 警告消息可识别任何相关的编程和设计问题,并尽可能提供有关如何解决问题的信息。

注释

Visual Studio 中的 .NET Core 和 .NET Standard 项目不支持旧版分析(静态代码分析)。 如果在 msbuild 中对 .NET Core 或 .NET Standard 项目运行代码分析,则会看到类似于错误的错误:CA0055:无法识别your.dll>的平台<。 若要分析 .NET Core 或 .NET Standard 项目中的代码,请改用 代码分析器

IDE (集成开发环境) 集成

可以手动或自动对项目运行代码分析。

若要每次生成项目时运行代码分析,请在项目的 “代码分析 ”属性页上选择该选项。 有关详细信息,请参阅 “如何:启用和禁用自动代码分析”。

若要在项目上手动运行代码分析,请从菜单栏中选择“分析>运行代码分析>”,对<项目>运行代码分析

规则集

托管代码的代码分析规则分为 规则集。 可以使用Microsoft标准规则集之一,也可以 创建自定义规则集 来满足特定需求。

禁止显示警告

通常,指示警告不适用是有用的。 这会通知开发人员以及以后可能会查看代码的其他人,警告已调查,然后取消或忽略。

通过自定义属性实现警告的源内抑制。 若要禁止显示警告,请将属性 SuppressMessage 添加到源代码,如以下示例所示:

[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1039:ListsAreStrongTyped")]
Public class MyClass
{
   // code
}

有关详细信息,请参阅 禁止显示警告

注释

如果将项目迁移到 Visual Studio 2019,则可能突然面临大量代码分析警告。 如果您尚未准备好修复警告,可以通过选择 分析>生成并禁止活动问题 来抑制所有这些警告。

在签入策略过程中运行代码分析

作为一个组织,你可能希望要求所有签入都满足某些政策。 具体而言,需要确保遵循以下策略:

  • 正在签入的代码中没有构建错误。

  • 代码分析作为最新版本的一部分运行。

可以通过指定签入策略来实现此目的。 有关详细信息,请参阅 使用项目签入策略增强代码质量

团队建设集成

可以使用生成系统的集成功能在生成过程中运行分析工具。 有关详细信息,请参阅 Azure Pipelines