当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《.NETWindows应用程序可以压缩成单个.exe吗?》经验,为你挑选了5个好方法。

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



1> mattlant..:

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



2> Andrew Savin..:

今天,在2015年,您可以使用Costura.Fody.使用它相当于将NuGet包添加到项目并重新编译.我不确定它是否适用于问题中的Visual Studio 2005,但它不是2008年.我已经在我的一些项目中使用它并且效果很好.

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


这是一个正确的答案.我刚刚测试了VS 2015和WPF应用程序.谢谢!
我发现使用Roslyn的项目非常好.通过Nuget经理安装,然后......中提琴!它开箱即用.OP:请接受这个答案.

3> MusiGenesis..:

是.在.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运行时.本机编译的优点是可以预编译一些东西,但我从未见过这种微小的性能提升值得打扰的情况.



4> Phil Wright..:

有一个名为.NET Reactor的第三方工具可以为您完成此任务.我没有使用过该工具,因此不确定它的工作情况.



5> Vertigo..:

我使用.NETZ .NET开源可执行文件打包程序将EXE和DLL文件打包到单个EXE文件中.以下是如何将DLL文件打包到一个文件中的命令行示例:

netz -s application.exe foo.dll bar.dll

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有