在给定的程序集中查找非必需的类

时间:2013-01-08 11:11:37

标签: .net visual-studio-2012 .net-assembly

我有一个庞大的.Net库,里面有几百个类。但是,我只使用此库的子集。所以我想创建一个只有必需和依赖类的新程序集,而不是使用整个程序。

是否有快速,自由,简便的方法来识别所需的和依赖的类?

手动不是一种选择,就像我说的那样,有几百个!

2 个答案:

答案 0 :(得分:1)

这可能无法以一般方式进行,让我解释原因。

如果您使用“约定优于配置”的任何库,模式或诸如此类,100%确定是否可以删除类的唯一方法是执行代码,您将不得不确保你执行所有场景的所有代码路径,在大多数情况下是不可能的。

例如,如果任何代码使用反射来确定哪些类可用,那么您是否可以安全地删除该反射代码所能找到的类将取决于找到该类后所执行的操作。

例如,您可以从ASP.NET MVC 4程序集中删除类,因为它看起来似乎没有使用View类,但它们是通过反射找到并使用的,而不是在代码中明确显示。

我的建议是要么忽略这一点,毕竟2MB并不是那么多,或者我会按照主题将较大的项目拆分为较小的项目。这样一个项目只会引用它所需的类库部分。

答案 1 :(得分:1)

NDepend 4.0。 14天全功能 - 免费试用是我用来完成任务的。

感谢 dandan78 提示!