在 Visual Studio 中,对于一个类、一个字段、一个方法,我只需右键单击并说“查找所有引用”即可查看谁在调用我的代码。
但是对于一个项目来说没有类似的东西。
最简单的方法是什么?我必须检查每个项目才能告诉我吗?
编辑:
A 引用 B,但使用 Regex 找不到 B。
在 Visual Studio 中,对于一个类、一个字段、一个方法,我只需右键单击并说“查找所有引用”即可查看谁在调用我的代码。
但是对于一个项目来说没有类似的东西。
最简单的方法是什么?我必须检查每个项目才能告诉我吗?
编辑:
A 引用 B,但使用 Regex 找不到 B。
不确定您是否考虑过使用 Resharper(不是免费的),但它很容易让您右键单击项目以查看相关代码。
在我看来,我不能没有并且非常值得付出代价——但这并不适合所有人。
如果您想试用,可以试用 30 天 - PS 我不为他们工作,只是该工具的爱好者!:)
右键单击项目 => 项目依赖项。然后在下拉框中选择您的项目。下面所有灰显的项目取决于所选项目。(它们是灰色的,因此您无法通过检查它们来创建循环依赖项。)
在 Notepad++ 等编辑器中搜索所有项目文件
与 fenone 的答案类似的方法是转到 Windows 中的解决方案文件夹,并通过 Windows 搜索简单地过滤 *.*proj 那里。这将为您提供所有项目文件(或者您可能有一些在不同的文件夹中,它们可以稍后添加)。只需选择所有这些文件并在 Notepad++ 等编辑器中打开。您可以根据需要将其他项目添加到您的 Notepad++ 实例中。一旦您在那里打开了所有项目文件,就可以轻松搜索对项目、.dll、库等的引用。我更喜欢这种方法,因为项目文件在他们自己的编辑器中是关闭的,而且我认为它们更容易搜索。
卸载项目并重新编译
第二种方法是在 Visual Studio 的解决方案资源管理器中右键单击您的项目,然后单击“卸载项目”,然后分析或重新编译解决方案。任何在代码中实际引用已卸载项目的项目都会出现错误,但您的构建仍然会成功,并且您的项目级引用仍将显示为有效(至少它们在 VS 2017 中对我而言)。一种类似的更具侵入性的方法是使项目级引用无效并且实际上使任何引用构建失败,这将是更改项目文件夹的路径,以便 Visual Studios 找不到它。这将产生第二个影响,即通过路径而不是项目来识别任何引用设置。
其他注意事项
当然,您的项目可以包含在其他解决方案中,因此可以跨解决方案使用类似的搜索技术。只是为了涵盖您的基础,可能会通过路径而不是项目来引用您的编译文件,这只是需要注意的事情。检查您的构建后事件,以确保没有任何内容被复制和引用到意外的地方。搜索 .dll 的所有实例或在某个合理的文件夹范围内的任何内容,以了解任何副本。