我们的小组有一个“工具库”DLL,我们的几个内部项目 (所有C#)都使用。我已经发展出了一大堆的直觉 工具库仅由其中一个项目使用 - 让我们调用它 项目“项目A”。有没有可以检查的.NET工具 工具DLL和所有项目(可能是项目EXE),并枚举所有 工具库中确实只使用的方法和类 项目A?我认为有些重构是有序的(移动工具库的部分 回到Project A自己的代码库),这样的列表听起来 喜欢它会非常有帮助。
由于反思,我不认为工具可以100%正确地完成工作。 但是,假设我知道我们的项目都没有调用工具库 任何巧妙的反思技巧;他们只能正常调用它 方法调用应该适合静态分析。
答案 0 :(得分:2)
听起来工具NDepend 可以为您确定。此外,为了快速检查您是否在Visual Studio中使用ReSharper,您可以右键单击项目引用中的dll并选择“查找相关代码”,这将列出单个项目中的用法。
答案 1 :(得分:1)
从每个类型/命名空间(或方法,如果你真的想要)分解使用/使用的角度来看详尽列表NDepend可能是最好的选择。 你可以得到一个free limited version来做到这一点。
如果每个项目都有一个单独的命名空间(比如说Foo.A和Foo.B)
SELECT TYPES WHERE IsUsedBy "Foo.A"
和
SELECT TYPES WHERE IsUsedBy "Foo.B"
你会得到一个很好的列表,列出每个类型正在使用的类型。将结果放入电子表格表中,共享/分离的内容将很好地删除
答案 2 :(得分:0)
.NET Reflector - 技术上不会给你一个列表,但如果你把所有的DLL / Exes加载到它中,你可以使用你认为只在一个地方使用的每种类型的“分析”功能,它会确认或显示使用该类型的其他地方。
答案 3 :(得分:0)
假设在项目A中引用了工具库DLL,您可以使用Resharper中的“查找用法”功能,该功能会告诉您所使用的引用程序集(在本例中为您的工具库)。< / p>
答案 4 :(得分:0)
这里只是一个建议....我相信一个人可以写,但你可能没有必要,除非你有一大堆dll。我会试试这个:
创建新的soltion
希望这有帮助。