前言
随着.NET5.0Preview8的发布,许多新功能正在被社区成员一一探索;这其中就包含了“单文件发布”这个炫酷的功能,实际上,这也是社区一直以来的呼声,从WinForm的msi开始,我们就希望有这样一个功能,虽然在docker时代,单文件发布的功能显得“不那么重要”,但正是从这一点可以看出,.NET的团队成员一直在致力于实用功能的完善。
在Java的世界里,单文件发布一直伴随着他们的成长,War文件可以直接上传到Tomcat上运行,话说我们还是有那么一丢丢的羡慕的,不过凡事有利就有弊,单文件发布对于细分模块的热更新来说,还有有一点点的不方便。
不过瑕不掩瑜,在微服务概念越来越火热的今天,相信单文件发布的功能带给大家更多的是兴奋。
什么是单文件发布
首先,我们要清楚的了解,什么是单文件发布。
官方的目标定义:
.Net5.0单个文件解决方案应为:
广泛兼容:可以将包含IL程序集,随时运行的程序集,复合程序集,本机二进制文件,配置文件等的应用程序打包为一个可执行文件。可以直接从打包软件直接运行应用程序的托管组件,而无需提取到磁盘。可与调试器和工具一起使用。从上面的目标可以看出,和以往版本最大的不同在于:将所有依赖打包到一个可执行文件中,可直接运行,不影响调试操作。
注意上面的这句话“将所有依赖打包到一个可执行文件中”,而在以往,我们使用dotnetpublish将应用程序进行发布之后,我们会看到,在publish下有许多项目依赖的dll文件,在.NET5.0到来之后,这些依赖文件可收纳到一个文件中,瞬间让人感受到了清凉。
发布操作指令相关
命令
可选参数
配置文件设置参数
除了可以使用命令行参数的形式,还可以通过配置文件的形式设置发布参数,编辑项目文件,添加配置节点到文件中并保存即可。
PropertyGroupTargetFrameworknet5.0/TargetFrameworkRuntimeIdentifierlinux-x64/RuntimeIdentifierPublishSingleFiletrue/PublishSingleFileIncludeContentInSingleFiletrue/IncludeContentInSingleFile/PropertyGroup
关于RID说明见: