我想将我的C#应用程序编译为单个exe文件。问题是我的项目依赖于许多其他项目,在编译时导致Release
文件夹中的许多dll。有没有办法让这些dll包含exe?
注意:它不需要独立于.NET框架。我假设任何使用此exe的人都会安装它。
答案 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方法的任何东西 - 事实上,它只是构建过程中的一个额外的手动步骤,你并不是非常需要它。