如何在Visual Studio中创建独立的exe?

时间:2012-06-19 14:30:29

标签: c# visual-studio compilation

  

可能重复:
  Embedding DLLs in a compiled executable

我想将我的C#应用​​程序编译为单个exe文件。问题是我的项目依赖于许多其他项目,在编译时导致Release文件夹中的许多dll。有没有办法让这些dll包含exe?

注意:它不需要独立于.NET框架。我假设任何使用此exe的人都会安装它。

3 个答案:

答案 0 :(得分:8)

.NET附带了一个名为ILMerge的工具,其中多个程序集可以一起打包到一个文件中。您可以使用它:

ilmerge /target:winexe /out:myoneexecutable.exe Foo.exe Bar1.dll Bar2.dll

答案 1 :(得分:1)

ILMerge是一个选项,但它无法合并WPF程序集。您可以将程序集嵌入为资源并动态加载它们。请参阅this Richter article

答案 2 :(得分:0)

我相信能够编译成单个可执行文件的最接近的是使用Visual Studio的安装项目功能/向导来生成标准的MSI包,然后您可以使用它来分发您的应用程序。

然而,可能有第三方工具允许您将所有内容压缩到一个文件中。但我不相信这会让你获得超过标准MSI方法的任何东西 - 事实上,它只是构建过程中的一个额外的手动步骤,你并不是非常需要它。