未使用的程序集引用的成本是多少?

未使用的程序集引用的成本是多少?

问题描述:

我想知道在.NET解决方案中引用程序集的各种成本是多少。我对技术和组织成本都感兴趣。未使用的程序集引用的成本是多少?

一些例子:

  • 未使用的组件包括附加的字节船(长下载,浪费的空间)
  • 未使用的大会可能包含利用的安全漏洞
  • 未使用的大会可能要加收启动成本
  • 未使用的Assembly可能会产生额外的审查费用(如此问题)
  • 未使用的Assembly可能会混淆新开发者
+0

即使未使用的组件出货了,我也没有看到它会如何构成安全风险。由于它没有被使用,所以它的代码都没有被执行(甚至没有静态的构造函数)。 – Heinzi 2011-04-21 09:29:15

+0

@Heinzi:我完全和Marijn在一起。删除参考文献并且不部署部分文件是一个小小的剪辑,可以节省大量愚蠢的问题。 – 2011-04-21 15:10:40

+0

我没有说我不同意Marijn - 相反:没有引用和不部署不需要的程序集有很多很好的理由。我只是不明白关于安全性的观点,因为我无法想象任何可以利用未使用的程序集中的安全漏洞的攻击媒介。 – Heinzi 2011-04-21 15:16:30

如果您在项目中引用装配但实际上未在该装配中使用任何类型,则未使用的装配将不会成为最终产品的一部分。该参考在编译时被删除。

引用未使用的程序集的唯一“开销”是在开发过程中引用很多未使用的程序集可能会使开发人员对项目的依赖关系产生困惑。项目中的每个新程序集也会为IntelliSense和编译器创建一些开销,但在大多数情况下您不会注意到。

ReSharper具有分析引用程序集是否未使用的功能。

+0

谢谢,你有没有任何参考指出事实,这将在编译时被删除? – 2012-10-16 11:54:30

+1

@RobertJeppesen:不知道我是否在多年前阅读过由Don Box撰写的Essential .NET第I卷,但您可以通过编译一个带有“太多”引用的项目并查看生成的程序集来自己测试它。 – 2012-10-16 15:13:19

如果你没有使用程序集,那么它们在编译时被剥离出来,所以成本不算什么。

在我看来,对于我(和我的同事)来说,甚至认为关于未使用的引用(我们为什么需要XML在这里?)是足够的动机来删除它们。因此,我从未考虑过对部署或性能的影响。