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? [复制]