假设我有一个包含A
到Z
类型的大型项目。
如果出于某种原因,我想将 类型A
打包并分发给某些客户,该怎么办?
显然我不能无条件地将A
编译成自己的DLL;它可能取决于我项目中的其他类型。但它不太可能依赖于我项目中的每个类型。
我想象的是一些工具可以检查A
,识别它的依赖关系,并以某种方式编译一个只有我想要的类型所需类型的最小DLL(A
)而不再
例如,如果A
取决于B
和C
提供的功能,而B
取决于D
,C
和D
没有其他依赖项(除了可能A
,B
或彼此之外),此工具将A
通过D
并编译只有那些类型成为我认为合适的DLL。
Visual Studio是否提供此类功能?如果没有,是否有一些加载项或外部工具能够做到这一点?顺便说一下,我问的是合理的,还是你认为这样的事情会是一个坏主意?
显然我总是可以手动完成;它看起来似乎是很多工作(如果开始时这是一个坏主意,好吧,那就忘了它。)
答案 0 :(得分:1)
这听起来像是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所需的一切,仅此而已。