将所有C#文件编译成一个文件?

时间:2009-02-15 03:45:01

标签: c# .net

有没有办法将C#文件编译成一个可以提供给用户的文件?

4 个答案:

答案 0 :(得分:12)

一种方法是使用ILMerge。这会将多个程序集合并为一个程序集(想想将所有DLL和主exe合并到一个exe中)。

答案 1 :(得分:2)

是:)但您必须将所有资源放入单个程序集并将其编译为EXE。另请注意,目标系统还必须安装所需的.NET基础结构。

请注意,目标系统上的安全策略可能会阻止用户直接运行您的应用。

最后,除非您“NGEN”您的代码,否则它将在第一次运行时jitted。这将产生一些启动时间成本。在某些情况下,这可能是相当可观的。

答案 2 :(得分:2)

如果您还希望合并应用程序所需的.Net程序集,您可以使用类似This的内容甚至在System.dll,System.Windows.Forms.dll等中进行编译,以便最终用户甚至不需要.Net安装。

答案 3 :(得分:0)

我从一个类似的问题得到了这个问题(对于发布答案的人也很抱歉 - 我似乎无法找到原文链接到这里):

how to embed your application’s dependent DLLs inside your EXE file

这是Jeffrey Richter的CLR Via C#的摘录。我还没有尝试过,但看起来很有希望。我认为它也适用于WPF(即将自己找到)。

相关问题