用 Visual Studio 代码分析来分析 Windows 应用商店应用程序中的 Visual Basic 和 C# 代码质量

Microsoft Visual Studio Express 2012 for Windows 8 中的代码分析工具可检查代码中是否存在一组常见缺陷和违反良好编程习惯的情况。代码分析警告与编译器错误和警告不同,因为代码分析工具搜索的是虽然有效但仍会为您或使用您代码的其他人员带来问题的特定代码模式。代码分析还可在代码中找到通过测试难以发现的缺陷。在开发过程中定期运行代码分析工具可提高所编写的应用程序的质量。

备注

在 Visual Studio Ultimate 2012、Visual Studio Premium 2012 和 Visual Studio Professional 2012 中,可使用完整的代码分析功能。请参见 MSDN 库中的使用代码分析工具分析应用程序质量

在本主题中

可了解:

运行代码分析

分析和解决代码分析警告

禁止显示代码分析警告

搜索和筛选代码分析结果

Visual Basic 和 C# 代码分析警告

运行代码分析

若要对 Visual Studio 解决方案运行代码分析,请执行以下操作:

  • 在**“生成”菜单上,选择“对解决方案运行代码分析”**。

若要在每次生成项目时自动运行代码分析,请执行以下操作:

  1. 在解决方案资源管理器中右击项目名称,然后选择**“属性”**。

  2. 在项目属性页中,选择**“代码分析”,然后选中“生成时启用代码分析(定义 CODE_ANALYSIS 常量)”**。

这样,解决方案编译后将运行代码分析。结果将显示在“代码分析”窗口中。

“代码分析”窗口

分析和解决代码分析警告

若要分析某个具体的警告,请在“代码分析”窗口中单击该警告的标题。随后该警告将展开,显示有关问题的详细信息。

展开的代码分析警告

展开警告后,将在 Visual Studio 代码编辑器中突出显示导致警告的代码行。

代码分析文本突出显示

了解问题后,可在代码中解决该问题。然后,重新运行代码分析,以确保“代码分析”窗口中不再显示警告,并确保修复行为不会引发新的警告。

提示

可从“代码分析”窗口中重新运行代码分析。单击“分析”按钮,然后选择分析的范围。可对整个解决方案对所选项目重新运行分析。

禁止显示代码分析警告

有时,您可能会决定不修复代码分析警告。您可能会觉得与代码的任何真实实现中引发问题的可能性相比,解决警告所需的重新编码工作量过大。或者,您可能会认为在警告中使用的分析不适合特定的上下文。可禁止显示个别警告,以使“代码分析”窗口中不再显示这些警告。

若要禁止显示警告,请执行以下操作:

  1. 如果未显示详细信息,则单击警告的标题以将其展开。

  2. 选择警告底部的**“操作”**链接。

  3. 指向**“禁止显示消息”,然后选择“在源中”“在禁止显示文件中”**。

    • **“在源中”**在源文件中产生该警告的方法上方插入 SuppressMessage 特性。这样可更容易地发现禁止显示。

    • **“在禁止显示文件中”**将 SuppressMessage 特性添加到项目的 GlobalSuppressions.cs 文件。这样可更容易地管理禁止显示。注意,添加到 GlobalSuppression.cs 的 SuppressMessage 特性还针对产生该警告的方法。该特性并不在全局禁止显示该警告。

    决定在源文件中还是在禁止显示文件中禁止显示警告取决于编码风格和需要。

搜索和筛选代码分析结果

可搜索冗长的警告消息列表,也可在多项目解决方案中筛选警告。

“搜索并筛选代码分析”窗口

在 Visual Studio Express 2012 for Windows 8 中,所有代码分析警告的严重性级别均为“警告”。

Visual Basic 和 C# 代码分析警告

代码分析可引发以下警告:

CA1001: Types that own disposable fields should be disposable

CA1821: Remove empty finalizers

CA2213: Disposable fields should be disposed

CA2229: Implement serialization constructors

CA2231: Overload operator equals on overriding ValueType.Equals