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

将所有C#文件编译成一个文件?,c#,.net,C#,.net,有没有一种方法可以将C#文件编译成一个单独的文件,并随时提供给用户?一种方法是使用。这会将多个程序集合并为一个程序集(请考虑将所有DLL和主exe合并为一个exe)。是:),但您必须将所有源代码放入一个程序集并将其编译为exe。还要注意,目标系统还必须安装所需的.NET基础结构 请注意,目标系统上的安全策略可能会阻止用户直接运行您的应用程序 最后,除非您将代码“”改为“”,否则它将是第一次运行。这将产生一些启动时间成本。在某些情况下,这些可能是相当可观的。如果您希望同时合并应用程序所需的.Net

有没有一种方法可以将C#文件编译成一个单独的文件,并随时提供给用户?

一种方法是使用。这会将多个程序集合并为一个程序集(请考虑将所有DLL和主exe合并为一个exe)。

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

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


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

如果您希望同时合并应用程序所需的.Net程序集,您甚至可以使用类似的方法在System.dll、System.Windows.Forms.dll等中编译,因此最终用户甚至不需要安装.Net。

我从一个类似的问题中了解到这一点(对发布答案的人表示抱歉-我似乎找不到原文链接到这里):


这是杰弗里·里希特(Jeffrey Richter)通过C#的CLR的摘录。我还没有尝试过它,但看起来很有希望。我认为它也可以与WPF一起使用(即将为我自己找到答案).

您是在寻找一种工具来合并C源代码还是合并输出程序集?发生的jitting应该与程序是一组程序集时没有什么不同-jitting在每个方法第一次被调用时都是以方法为基础发生的。据推测,无论程序是否打包,方法都将以相同的顺序被调用在单个.exe或多个程序集中。@Michael-除非有编辑,否则对JIT的唯一引用与NGEN有关;在这种情况下,否:不会逐个方法对其进行JIT…@Marc-我认为NGEN注释意味着将程序集合并到单个.exe中会比拥有多个assemb增加启动时间谎言。换句话说,我想说的是,您是否想要或需要NGEN可能与您的程序集是否合并无关。CodeProject中的一篇简短但有用的文章:遗憾的是,这不适用于WPF程序集(版本2.11.0502之前)。在这种情况下,我会使用boxedapp或boxedapp packer。这很酷,我只希望我有1500.00美元可以挥霍。我想Mono现在提供了类似的功能,Mono是免费的。哈!我一发表评论,我就按照原文运行:。