程序集可以包含exe吗?

时间:2013-02-27 20:12:26

标签: .net

程序集可以包含exe吗?

我有一个生成exe的程序,但也使用我创建的.dll。是多文件程序集吗?

编辑:

那么我在.NET中读到的有关多文件组件的内容是什么?那些包含.exe和.dll吗?

4 个答案:

答案 0 :(得分:6)

不,如果你有一个.exe文件和一个.dll,那就是两个独立的程序集。

如果您只想拥有一个文件,可以尝试使用ILMerge(direct downloadNuGet)来合并这两个文件。

答案 1 :(得分:1)

使用Jon Skeet提议的ILMerge:

ilmerge.exe /target:winexe /out:bothassemblies.exe assembly1.exe assembly2.dll

答案 2 :(得分:1)

This SO post描述了single-file assemblymulti-file assembly之间的区别。这是该帖子的一个片段,用于回答您更新的问题:

<强>问题:

What is this I read about multi-file assemblies in .NET?

<强>答案:

  

使用命令行编译器,您可以将程序集拆分为多个部分 - 其中单个程序集的清单包含查找作为程序集一部分但存储在单独文件中的信息所需的信息。例如,您可以在自己的文件中保留资源图像(即:.bmp),这是一个大型资源,因此不必仅加载它来打开程序集。 Visual Studio不支持创建多文件程序集,但这些程序看起来像DLL或EXE,加上零个或多个netmodule文件,加上零个或多个资源文件(可以是任何内容)。主DLL或EXE包含指定其他文件所在位置的清单。构建它所需的步骤详见“如何:构建多文件程序集”。

答案 3 :(得分:0)

您可以使用ILMerge工具合并程序集&amp; exe文件到一个可执行文件。

查看this