如何找出C#.NET程序集中没有调用的代码

如何找出C#.NET程序集中没有调用的代码,c#,.net,C#,.net,我在VisualStudio2008中有一个C#.NET程序集。如果需要,我可以升级到VS2010 如何找到程序集中未调用的代码?理想情况下,如果某个东西可以一次性分析整个解决方案。这对我来说太多了,我无法亲自分析 程序集在客户端和服务器项目之间共享,因此我需要了解在何处使用了哪些代码。在VS 2010中,您可以将其与单元测试一起使用-因此,如果您可以将客户端代码重构为实际的单元测试,您可以使用它 引自: 以确定您的 项目的代码实际上是 使用单元测试进行测试,您可以使用 visualserver

我在VisualStudio2008中有一个C#.NET程序集。如果需要,我可以升级到VS2010

如何找到程序集中未调用的代码?理想情况下,如果某个东西可以一次性分析整个解决方案。这对我来说太多了,我无法亲自分析

程序集在客户端和服务器项目之间共享,因此我需要了解在何处使用了哪些代码。

在VS 2010中,您可以将其与单元测试一起使用-因此,如果您可以将客户端代码重构为实际的单元测试,您可以使用它

引自:

以确定您的 项目的代码实际上是 使用单元测试进行测试,您可以使用 visualserver的代码覆盖特性 Studio应用程序生命周期 管理层。要执行此操作,请首先编辑 运行配置以指示 包含其 你想要测量的覆盖率。然后跑 对代码进行测试。详细代码 覆盖率统计数据显示在 窗口,你也可以看到, 逐行,哪一个代码已被删除 测试


试着重新竖琴。对你来说就是这样。你可以从他们的网站上获得免费试用版


如果你不介意买一些东西来做,ReSharper会为你找到未使用的代码。

FxCOP是微软提供的一个免费工具,包括死代码检测

为了获得最佳结果,不要将类/方法标记为公共的,除非它们确实需要是公共的。它假定外部程序集使用任何公共方法。

请在Visual Studio中检查。

您可以尝试ReSharper的功能,记住它会说删除仅通过反射使用的代码是安全的(例如流畅的自动映射约定)


下载一个30天的试用版,看看它是否能满足您的需要,这是无妨的。

我还需要一点时间继续。一个选项是临时将MessageBox的代码丢弃,以查看正在执行的代码..MessageBox?哎呀。日志语句会更好(我并不认为这是一个好方法)。有两种类型,类和方法,它们实际上在代码中被引用,但却从未被实际使用,因为逻辑不需要它们。就像一个从未订阅的事件处理程序方法,或者一个被分解但忘记删除的类。垃圾需要一个非常不同的工具。林恩,对不起,我不相信你的建议。谢谢你,汉斯,好主意。有点像这样。一个VS 2008解决方案=服务器项目,另一个VS 2008解决方案=客户端项目。他们之间共享了几个VisualStudio项目。因此,这些共享项目上的某些类具有从服务器项目调用的方法,以及从客户端项目调用的一些方法。实际上它很难看,但它是遗留代码。+1用于建议一种检测反射使用的代码的方法。到目前为止,安全删除一直在为我工作。一个真正的呼叫树会更好,但我没有任何办法及时得到它。