工具:查找所有未使用的代码

20

我需要一个工具,可以运行并显示未使用的方法、变量、属性和类列表。如果能包含CSS类就更好了。

我听说FXCop或NDepend可以做到这一点?


虽然你还需要CSS,但这并不完全是重复的问题:https://dev59.com/WHVD5IYBdhLWcg3wKYT- - user7116
我不想让它全面改变所有东西。基本上,我想要一个可能问题的列表,以便我可以逐个选择。我不能只是修复整个应用程序,否则我的老板会杀了我。 - PositiveGuy
我想知道在应用代码分析之前,NDepend是否会先给出一个好的列表。有谁能够直接回答这个问题并使用它吗? - PositiveGuy
NDepend 不会进行任何更改,它只提供数据。 - user7116
这个问题是一年半以前提出的。 - user47589
5个回答

20

3
+1 明确推荐使用 R#,并使用他们的“代码清理”功能来查找所有未使用的代码。 - David Hedlund
当您在R#中进行编辑时,所有灰色的方法/字段/属性都是未使用的。 - Nathan Taylor
代码清理会自动更改文件而不经过您的许可吗?还是它会先给出一个漂亮的列表? - PositiveGuy
1
Coffeeaddict - Code Cleanup 只执行非破坏性更改。它不会删除任何未使用的方法或其他内容,但它会删除额外的 using 语句,修复格式,转换为自动属性等等。这一切都是可定制的,但是,它在执行任务之前不会进行确认,但它也不会自动保存,因此您始终可以撤消操作。 - Nathan Taylor
2
您可以随时逐个文件执行“清理”操作。 - Nathan Taylor
显示剩余2条评论

8

VSTS中的代码分析可以在构建过程中生成有关此问题的警告。您可以设置它将警告视为错误。


5

5
这个工具NDepend可以帮助找出.NET代码库中未使用的代码。免责声明:我是这个工具的开发人员之一。 NDepend提供编写基于LINQ查询的代码规则(CQLinq)。提供约200个默认代码规则,其中3个专门用于检测未使用/死代码 NDepend集成在Visual Studio中,因此这些规则可以在IDE中进行检查/浏览/编辑。该工具还可以集成到您的CI过程中,并生成报告,显示违反规则和罪犯代码元素。
如果您单击上述这3个链接以向源代码查看这些规则,则会发现涉及类型和方法的规则有点复杂。这是因为它们不仅检测未使用的类型和方法,而且还检测仅由未使用的死亡类型和方法(递归)使用的类型和方法。
这是静态分析,因此规则名称中带有前缀Potentially。如果一个代码元素仅通过反射使用,则这些规则可能认为它未使用,但实际上并非如此。
除了使用这3个规则外,我建议通过测试来衡量代码覆盖率,并努力实现全面覆盖。通常,您会发现无法通过测试覆盖的代码实际上是可以安全丢弃的未使用/死代码。这在复杂算法中特别有用,其中不清楚代码分支是否可达。

2
"

Gendarme 还有不同的规则来查找未使用的代码。

"

我以前从未听说过这个,所以我想下载一下……它看起来相当不错! - Matt Grande
3
我用过Gendarme,它非常擅长寻找未使用的变量,但对于未使用的方法或类没有太大帮助。 - dan04

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接