2012-06-19 91 views
4

可能重复:
Embedding DLLs in a compiled executable如何在Visual Studio中创建独立的exe文件?

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

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

+6

另请参阅http://stackoverflow.com/questions/189549/embedding-dlls-in-a-compiled-executable – Rawling

回答

8

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

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

它没有打扰我担心单独的文件,但我偶然发现这一点,现在当然是theres没有机会有人会不小心删除1部分文件,或混合版本等。谢谢! – BugFinder

0

我相信你会得到能够编译为一个可执行文件使用Visual Studio的安装项目功能最接近/巫师生成标准MSI软件包,然后你可以用它来分发你的申请。

但是,可能有第三方工具可用于将所有内容压缩成一个文件。但我不认为这会让你得到任何超过标准MSI方法的东西 - 实际上,这只是构建过程中的一个额外的手动步骤,您并不需要这么做。

1

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

相关问题