假设我有一个简单的“ Hello World”控制台应用程序,我想发送给朋友来运行。朋友没有安装.NET Core,因此我知道我须要为他构建一个独立的应用程序。很简单,我只需在项目目录中运行如下命令:app
dotnet publish -r win-x64 -c Release --self-contained
朋友是多少位的操做系统,你就标记要发布成什么样子的, --self-contained这个标签的解释自包含,就是说你的相关依赖项与你的应用程序不挂钩,将会产生依赖,缺乏一个dll就会缺胳膊少腿。因此这样你就必须将整个文件夹都托给朋友。 优化
看看文件夹里的状况,它会发生什么?293个文件,这直接将.NET Core的运行时也打包了,这很是Nice!不过我这文件真的不少,我很难受!朋友会说:这什么鬼?exe在哪里?spa
因此.NET Core给咱们提供了一个命令标志, dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true 您会注意到,咱们再也不指定自包含标志。这是由于假设若是您将其打包为单个exe,则将须要它的全部依赖关系。这必定说得通。咱们试着去运行该命令。随后打开publish文件,咱们发现!这也太干净了吧! 可是文件仍是有点大呀,这可只是一个Hello World呀!,咱们在思考如何进行优化大小,固然这一点微软也给咱们考虑到了!!!操作系统
使用命令 dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true /p:PublishTrimmed=true 咱们拭目以待吧。3d
不经过DotCli发布能够修改一下项目文件,再经过VisualStudio发布!code
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.0</TargetFramework> <UseWindowsForms>true</UseWindowsForms> <RuntimeIdentifier>win10-x64</RuntimeIdentifier>//发布平台 <PublishSingleFile>true</PublishSingleFile>//是否单个exe </PropertyGroup> <PropertyGroup> <PublishTrimmed>true</PublishTrimmed>//启用压缩 </PropertyGroup> </Project>
祝.NET Core越来越好!orm