理解.NET程序集

6
当我在Visual Studio中的解决方案中构建项目时(可以是C#,VB.NET,F#或其他语言),我假设每个项目只生成一个程序集,对吗?
因此,如果我有一个包含项目1、2、3和4的解决方案,逐个构建每个项目后,我会得到4个程序集,对吗?
然而,是否有可能让构建器/编译器为整个解决方案生成只有一个程序集?或者将两个项目一起编译生成一个程序集?
我的意思是,类似于使用命令行调用编译器并设置目标程序集的方式…

为什么不只做一个唯一的项目呢? - bAN
2
例如,因为您在不同的项目中使用不同的语言。或者您想以编译器强制的方式分离层。或者您在多个解决方案之间有共同的代码。 - CodesInChaos
@bAN 很抱歉晚了...有时候程序员需要在编译成唯一的汇编代码时保持不同的项目分离。 - Andry
好的,这只是出于好奇心,谢谢。我没有意识到有这么多原因... - bAN
1个回答

10

默认情况下,项目和程序集之间存在一对一的对应关系。但是您可以使用像 ILMerge 这样的工具,将多个程序集合并成一个。


WOW好的...谢谢CodeInChaos,这很有帮助...不过是否有一种方法可以使用.net编译器来完成这个?例如从命令行调用它们并指定目标程序集? - Andry
我假设你可以将这样的调用放入后构建脚本中。但我自己没有做过类似的事情。 - CodesInChaos
@Andry MSBuild可能是这里的正确工具。请参阅此博客文章:http://www.hanselman.com/blog/MixingLanguagesInASingleAssemblyInVisualStudioSeamlesslyWithILMergeAndMSBuild.aspx - PetPaulsen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接