【发布时间】:2010-01-21 16:05:42
【问题描述】:
.Net 应用程序可以转换为单个 .exe 可移植应用程序吗?
即没有安装程序,它只是运行?
我想所有的 dll、资源等都需要嵌入到 exe 中?如果是这样,我该怎么做?
谢谢
【问题讨论】:
标签: .net visual-studio visual-studio-2008 portability portable-applications
.Net 应用程序可以转换为单个 .exe 可移植应用程序吗?
即没有安装程序,它只是运行?
我想所有的 dll、资源等都需要嵌入到 exe 中?如果是这样,我该怎么做?
谢谢
【问题讨论】:
标签: .net visual-studio visual-studio-2008 portability portable-applications
您可以使用ILMerge 将所有程序集合并到一个可执行文件中。但是您仍然需要安装框架运行时。要将您的可执行文件转换为本机可执行文件,您可以查看this question。
【讨论】:
不 - 您不能在自己的应用程序中静态包含 .net 运行时
【讨论】:
是的,.NET 应用程序可以是单个 .exe 文件。您可以只编写一个在 .NET 框架之外没有依赖关系的程序集,也可以使用 ILMerge 将多个程序集组合成一个程序集。不过,用户仍然需要安装适当版本的 .NET 框架;没有办法。
【讨论】:
我不确定,但听起来您希望 .NET 框架(或您的应用程序所需的部分)包含在安装程序中,以便 100% 独立,是吗? 我知道如果尚未安装 ClickOnce 应用程序,它可以下载 .NET,但如果您要部署到网络连接有限或没有网络连接的机器,这将无济于事。 据我了解,您可以使用您的应用重新分发框架:
http://msdn.microsoft.com/en-us/library/xak0tsbd.aspx ,但我自己从来没有做过。
编辑:您的应用程序的可执行文件实际上不需要使用安装程序安装(如果您只需双击它就会运行),但如果您包含其他文件(例如 .NET 的可再发行文件),那么您可能需要某种安装程序。
【讨论】:
可以使用称为应用程序虚拟化的概念将 .net 应用程序打包到单个可执行文件中。这不是世界上最实用的事情,但它是可能的。
我在回复this post时写了一些关于它的更多细节。
【讨论】: