能否将.Net应用程序转换为便携应用程序,即单个.exe文件?

6

一个.Net应用程序能否转换为单个.exe便携式应用程序?

即无需安装程序,它只需运行即可?

我想象中,所有的dll、资源等都需要嵌入到exe中。如果是这样,我该如何做呢?

谢谢。

5个回答

8
你可以使用 ILMerge 工具将所有程序集合并为单个可执行文件。但是仍然需要安装框架运行时。如果想要将可执行文件转换为本机可执行文件,你可以参考这个问题的解答。

1

不行 - 你不能在自己的应用程序中静态包含 .net 运行时


1

是的,.NET应用程序可以是单个.exe文件。您可以编写一个没有.NET框架之外的依赖项的程序集,或者使用ILMerge将多个程序集合并为一个。但用户仍然需要安装适当版本的.NET框架,这是无法避免的。


我不想单独安装 .NET Framework,因为这个应用程序是为没有网络、没有互联网并运行引导精简版 Windows(如 BartPE 等)的机器而设计的。它是用于诊断PC问题的吗? - Belliez
@Belliez:正如我所提到的,似乎可以将.NET框架与您的应用程序一起重新分发。虽然我自己从未这样做过,但我在这里看到了更多信息:http://msdn.microsoft.com/en-us/library/xak0tsbd.aspx - FrustratedWithFormsDesigner
@Belliez:必须安装框架,但如果为您的应用程序创建安装项目,则可以让它自动为您安装框架。但是,您不能仅分发没有框架的.exe文件;这是不可能的。 - Adam Robinson

0

我不确定,但听起来你想要在安装程序中包含.NET框架(或应用程序所需的部分),以便它是100%独立的,是吗? 我知道ClickOnce应用程序可以下载.NET,如果它尚未安装,但如果您要部署到网络连接有限或没有网络连接的计算机,则无济于事。 据我了解,您可以使用以下链接重新分发框架与您的应用程序:

http://msdn.microsoft.com/en-us/library/xak0tsbd.aspx ,但我自己从未这样做过。

编辑:实际上,您的应用程序可执行文件不需要使用安装程序进行安装(如果只是双击它,它将运行),但如果您包括其他文件(例如.NET的可再发行文件),则可能需要某种类型的安装程序。


0

使用应用程序虚拟化的概念,可以将 .net 应用程序打包成单个可执行文件。虽然这不是世界上最实用的事情,但确实是可能的。

我在此帖子的回复中写了更多详细信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接