Visual Studio 2008 / C#:如何在项目中查找死代码?

Posted

技术标签:

【中文标题】Visual Studio 2008 / C#:如何在项目中查找死代码?【英文标题】:Visual Studio 2008 / C# : How to find dead code in a project? 【发布时间】:2010-01-07 12:42:38 【问题描述】:

如何在 Visual Studio 2008 C# 项目中找到死代码? 比如未使用的类、未使用的变量或未使用的资源?

【问题讨论】:

【参考方案1】:

你可以试试FxCop,它集成在Visual Studio 2008中,名为Code Analysis。您只需右键单击项目文件并“运行代码分析”即可。

FxCop 是一个应用程序,它分析托管代码程序集(针对 .NET Framework 公共语言运行时的代码)并报告有关程序集的信息,例如可能的设计、本地化、性能和安全改进。

可以在项目属性的代码分析部分配置活动规则。例如,一些与手头案例相关的规则出现在使用规则和性能规则中:

CA1801:查看未使用的参数。 CA1811:避免未调用的私有代码。

为了获得更大的灵活性,您还可以编写自己的自定义规则 (Tutorial on writing your own Code Analysis rule)。

【讨论】:

教程链接坏了,但是可以在回程机里找到:web.archive.org/web/20110304073601/http://www.binarycoder.net/…【参考方案2】:

安装JetBrains ReSharper,它将为您突出显示未使用的代码。

【讨论】:

它会在文件中突出显示它,但不会在整个解决方案中找到死代码。这是我认为解决方案范围的分析可以提供的功能之一。 @Jamie Ide - 但我认为,如果您启用解决方案范围的分析,它允许您从警告导航到警告,甚至跨文件导航?【参考方案3】:

一个非常有用的工具是NDepend 依赖分析工具。您可以将您的 Visual Studio 项目加载到其中,它将分析所有程序集、类型和方法的依赖关系。它为您提供了有关依赖项的大量信息,包括(但绝不限于!)根本不被任何东西使用的方法/类型。

您可以以图形方式或在列表中查看依赖项,并且可以编写自己的自定义依赖项查询,例如:一个简单的 CQL 查询显示可能未使用的方法:

SELECT 
  METHODS         // Get me a list of methods
WHERE 
  MethodCa == 0   // Where their afferent coupling is zero, (afferent coupling being the number of other methods that call it)

强烈推荐的工具。

【讨论】:

【参考方案4】:

VS 中的 Shift + F12 可用于快速检查:)

【讨论】:

【参考方案5】:

虽然我不建议对大型代码库使用此方法,但您可以手动执行一定量。

如果您右键单击一个方法或类,然后选择“查找用法”,您将获得引用它的所有位置的输出。显然,如果不使用,这将是空的。

为了进行持续清理,我会安装 ReSharper

【讨论】:

我手动做了一定的量。那是我提出这个问题的时候。

以上是关于Visual Studio 2008 / C#:如何在项目中查找死代码?的主要内容,如果未能解决你的问题,请参考以下文章

使用 c# 将 Visual Studio .net 2003 转换为 2008

从 Visual Studio 2008 升级到 Visual Studio 2010 速成版

Visual Studio 2008 / C#:如何在项目中查找死代码?

C#“向后”将 Visual Studio 2010 .csproj 项目转换为 2008? [复制]

Visual Studio 2008 中的 C# 项目中的 C++ 项目参考

Visual Studio 2008 C#控件textbox背景如何设置为透明?