如何检查我的应用程序中的其他代码是否正在引用文件?

时间:2015-08-28 17:09:11

标签: asp.net resharper

我正在开发一个由开发人员在我之前编写的应用程序,并且该应用程序至少可以保持良好的维护状态。看起来好像有文件已添加到解决方案但从未使用过。我不确定为什么,但似乎是这种情况。

问题: 确定文件是否以任何方式在软件中被引用/使用的最佳方法是什么,以便在不需要时可以将其删除?这是Resharper可以做的事吗?

我还想提一下,这个应用程序非常庞大,我想找到一个可以分析整个应用程序而不是一次分析一个文件的解决方案。

2 个答案:

答案 0 :(得分:2)

ReSharper可以使用名为Solution-wide Analysis的功能为您提供帮助。启用它后(双击状态栏右下角的指示符圈),并允许一段时间来分析解决方案中的所有文件,它将告诉您有关的各种public类不在解决方案的任何地方使用。

然后,您可以使用ReSharper中的各种工具查找类似的未使用的类和方法,并进行判断调用是否删除它们。

这里需要注意的两件事:ReSharper(以及类似的工具)是一个静态分析工具 - 它只能根据它看到的信息工作。例如,它不会告诉您是否通过反射动态调用了一段代码。因此,在进行任何大型删除之前,请确保备份(和/或良好的源代码控制,例如git)。第二点需要注意的是,ReSharper的解决方案范围的分析也会在不相关的文件(例如css / html)中发现错误,你可以忽略它们。

最后,请记住ReSharper按解决方案工作:如果从其他解决方案中使用这些类,ReSharper将无法告诉您。因此,在删除死代码时请务必小心。

答案 1 :(得分:1)

我在搜索视觉工作室中做了像CTRL + SHIFT + F这样的事情,而不是在整个解决方案中查找文件名字符串。

但它不会给你100%的保证来确定是否使用了文件。因为如果文件名是动态生成的,从数据库或服务等来源重新获得,只需整个解决方案搜索就会给你误报。

因此,如果您认为这些文件仅以静态方式进行,那么您可以编写将遍历整个项目目录并在源代码文件中搜索子字符串的小程序。