假设我有一个大型项目,其中包含类型
A
到 Z
。
如果出于某种原因,我想打包并分发 just 类型
A
给某些客户怎么办?
显然我不能无条件地将
A
编译成它自己的DLL;它可能取决于我的项目中的一些其他类型。但它不太可能取决于我项目中的每个类型。
我设想的是一些工具,可以检查
A
,识别其依赖关系,并以某种方式编译一个最小的DLL,其中仅包含我想要的类型(A
)所需的类型,仅此而已。
例如,如果
A
依赖于B
和C
提供的功能,并且B
依赖于D
,但是C
和D
没有额外的依赖关系(除了可能的A
) 、 B
或彼此),这个工具会将 A
到 D
并将 仅这些类型 编译到 DLL 中,供我按照我认为合适的方式进行处理。
通过 Visual Studio 可以使用此类功能吗?如果没有,是否有一些插件或外部工具能够执行此操作?顺便问一下,我问的是否合理,还是你觉得这样的事情是个坏主意?
显然我总是可以手动执行此操作;看起来这会需要很多工作(如果一开始这是一个坏主意,那么就忘记它吧)。
这听起来像是一个 make 文件的理想问题。我不知道 .NET 位将如何发挥作用,但对于经典的 C 模型,您可以执行以下操作:
clean :
del *.obj
libA.lib : A.obj
makelib *.obj
libB.lib : B.obj
makelib *.obj
...
A.obj : B.obj C.obj
compile A.cs
B.obj : C.obj D.obj
compile B.cs
C.obj :
compile C.cs
D.obj :
compile D.cs
...
运行
make clean A
,你应该得到 A 所需的一切,仅此而已。