有没有办法在dll中打包多个.NET程序集?

Joh*_*dol 6 .net dll packaging assemblies

我想保持我的组件/组件与源代码的观点明确分开但我在某些情况下(可能与扩展无关)也需要将它们打包在同一个dll中.

是否可以在一个DLL中打包一些.NET程序集?如果是这样,怎么样?

如果可能,你认为这是一个好主意吗?为什么?

任何帮助赞赏!

And*_*ech 9

查看本文:使用ILMerge合并.NET程序集


如您所知,.NET中不再需要传统的目标代码链接..NET程序通常由多个部分组成.典型的.NET应用程序包括可执行程序集,程序目录中的一些程序集以及全局程序集缓存中的一些程序集.程序运行时,运行时将所有这些部分组合到一个程序中.不再需要在编译时链接.

但有时,将程序需要执行的所有部分组合到单个程序集中仍然很有用.例如,您可能希望通过将程序,所有必需的库和所有资源组合到单个.exe文件中来简化应用程序的部署.

csc /target:library /out:ClassLibrary1.dll ClassLibrary1.cs
vbc /target:library /out:ClassLibrary2.dll ClassLibrary2.vb
vbc /target:winexe /out:Program.exe 
    /reference:ClassLibrary1.dll,ClassLibrary2.dll Program.vb
Run Code Online (Sandbox Code Playgroud)

.

ilmerge /target:winexe /out:SelfContainedProgram.exe 
        Program.exe ClassLibrary1.dll ClassLibrary2.dll
Run Code Online (Sandbox Code Playgroud)


Ric*_*ard 6

ILMerge 可以将两个程序集合并为一个.

请参阅此处以获取信息(这些示例适用于交叉语言,但它可以用于构建程序集的任何工具).

显然,任何对各个程序集的依赖(预合并)都需要更新/重定向.