能否将整个C#控制台应用程序及其应用程序文件夹/文件打包成一个可执行的.exe文件,以便在运行时无需在计算机上安装?
能否将整个C#控制台应用程序及其应用程序文件夹/文件打包成一个可执行的.exe文件,以便在运行时无需在计算机上安装?
http://research.microsoft.com/en-us/people/mbarnett/ilmerge.aspx
ILMerge是一个实用程序,可用于将多个.NET程序集合并为单个程序集。
如果您还有其他文件,您需要将它们作为资源添加到程序中,并在运行时提取它们。
有关如何嵌入资源文件和在运行时提取它们的更多详细信息,请参见此处:
http://support.microsoft.com/kb/319292
简而言之:在将嵌入式资源添加到项目后,您需要执行以下操作: var assembly = Assembly.GetExecutingAssembly();
var stream = assembly.GetManifestResourceStream("MyNamespace.MyResourceFileName");
// ... do something with stream, e.g. write it out to a file.
[编辑]
你可以完全放弃使用ILMerge,并拥有一个更加强大的解决方案。
详见此处: http://blog.nenoloje.com/2011/08/better-alternative-to-ilmerge.html
ILMerge的作者说道:“作为ILMerge的作者,我认为这太棒了!如果我早知道这个,我就不会写ILMerge了。”
这篇文章是由Jeffrey Richter撰写的,我希望大多数人在这里都听说过他。 :)