我有一个.Net类库,它包含许多不同的命名空间和多个子依赖项(引用的程序集)。
有时项目只引用此类类的一个特定命名空间,有时只引用一个接口,但仍然在编译时,所有子依赖项(dll)都会复制到我的项目汇编文件夹(\ bin文件夹)中。
因此,如果类库MainClassLibrary
引用了subLib1
,sublib2
和sublib3
,那么当我创建引用project
的新MainClassLibrary
时, subLib1.dll
,subLib2.dll
和subLib3.dll
也都被复制到我的project
的二进制文件夹中,即使我只在{{1}内的隔离命名空间中使用接口定义这不依赖于任何子依赖项。
是将类库拆分成更小块的唯一方法还是有更好,更简单的方法?
答案 0 :(得分:2)
即使我只在MainLibrary中的隔离命名空间中使用接口定义
这就是有时只有一个或少数几个接口被放入一个单独的程序集(Project)的原因。
但总的来说,专注于最小化逻辑依赖关系,并且不必担心复制了多少DLL文件。
正如@Alexei在评论中提到的,DLL文件的这种(自动化)扩散是DLL Hell的解决方案。