通过仅引用类库的部分来最小化复制的子依赖项(程序集)的数量?

时间:2015-01-23 07:46:39

标签: c# .net dll reference dependencies

我有一个.Net类库,它包含许多不同的命名空间和多个子依赖项(引用的程序集)。

有时项目只引用此类类的一个特定命名空间,有时只引用一个接口,但仍然在编译时,所有子依赖项(dll)都会复制到我的项目汇编文件夹(\ bin文件夹)中。

因此,如果类库MainClassLibrary引用了subLib1sublib2sublib3,那么当我创建引用project的新MainClassLibrary时, subLib1.dllsubLib2.dllsubLib3.dll也都被复制到我的project的二进制文件夹中,即使我只在{{1}内的隔离命名空间中使用接口定义这不依赖于任何子依赖项。

是将类库拆分成更小块的唯一方法还是有更好,更简单的方法?

1 个答案:

答案 0 :(得分:2)

  

即使我只在MainLibrary中的隔离命名空间中使用接口定义

这就是有时只有一个或少数几个接口被放入一个单独的程序集(Project)的原因。

但总的来说,专注于最小化逻辑依赖关系,并且不必担心复制了多少DLL文件。

正如@Alexei在评论中提到的,DLL文件的这种(自动化)扩散是DLL Hell的解决方案