为了账号安全,请及时绑定邮箱和手机立即绑定

.NET Windows应用程序可以压缩为单个.exe吗?

/ 猿问

.NET Windows应用程序可以压缩为单个.exe吗?

宝慕林4294392 2019-11-14 15:28:52

我对.NET桌面应用程序(使用Visual Studio 2005)不太熟悉。是否可以从单个.exe文件运行整个应用程序?


查看完整描述

3 回答

?
智慧大石

是的,您可以使用ILMerge工具。


查看完整回答
反对 回复 2019-11-14
?
慕容4345310

您可以使用Costura.Fody。使用它等于将NuGet软件包添加到您的项目并重新编译。我不确定是否可以像问题中那样使用Visual Studio 2005,但是那也不是2008年。我在一些项目中使用了它,效果很好。


Fody是一个免费的开放源代码通用Code Weaver。它允许对已编译的.NET代码进行后期处理以增强功能的基本思想。例如,可以将日志记录添加到每个方法调用中,等等。在我们的例子中,它会将依赖的DLL文件打包到程序集资源中,以便可以在程序运行时将它们加载为独立依赖项。


查看完整回答
反对 回复 2019-11-14
?
慕盖茨9453107

是。在.NET中,您可以将整个应用程序封装为一个EXE文件。 只要确保您的解决方案中只有一个Windows应用程序项目(除设置外就没有其他项目)即可。

您的.NET项目创建的EXE文件将不是独立的可执行文件,但是它将具有的唯一依赖关系是.NET运行时(除非您添加对其他DLL程序集的引用)。如果使用.NET 2.0(我建议),则运行时预装在较新的PC上,并且可以很容易,快速地在较旧的计算机上进行设置(安装程序约为23 MB)。

如果您的应用程序确实需要引用其他程序集(例如数据访问DLL或.NET类库DLL项目),则可以使用此处其他发布者引用的工具之一,将您的EXE和所有引用的DLL组合到一个EXE文件中。但是,常规做法要求仅将EXE文件以及任何相关DLL部署为单独的文件。在.NET中,依赖DLL的部署非常简单:只需将它们与客户端计算机上EXE文件放在同一文件夹中,即可完成。

最好将应用程序(无论是一个文件还是多个文件)部署为单文件安装程序(setup.EXE或setup.MSI)。.NET带有部署项目模板,可以相当轻松地为您创建安装程序。

有点题外话:您可以使用NGEN将.NET应用程序编译为本机EXE,但是它仍然取决于.NET运行时。本机编译的优点是可以对某些内容进行预编译,但是我从未见过这种微不足道的性能提升值得关注的情况。


查看完整回答
反对 回复 2019-11-14
  • 3 回答
  • 0 关注
  • 63 浏览
我要回答

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信