前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在.NET 6.0中发布单个Exe文件(PublishSingleFile)

在.NET 6.0中发布单个Exe文件(PublishSingleFile)

作者头像
跟着阿笨一起玩NET
发布2022-05-10 13:58:45
4.9K0
发布2022-05-10 13:58:45
举报

假设我有一个简单的“ Hello World”控制台应用程序,我想发送给朋友来运行。朋友没有安装.NET Core,所以我知道我需要为他构建一个独立的应用程序。很简单,我只需在项目目录中运行以下命令:

dotnet publish -r win-x64 -c Release --self-contained

朋友是多少位的操作系统,你就标记要发布成什么样子的, --self-contained这个标签的解释自包含,就是说你的相关依赖项与你的应用程序不挂钩,将会产生依赖,缺少一个dll就会缺胳膊少腿。所以这样你就必须将整个文件夹都托给朋友。 

 看看文件夹里的情况,它会发生什么?293个文件,这直接将.NET Core的运行时也打包了,这非常Nice!不过我这文件真的很多,我很难受!朋友会说:这什么鬼?exe在哪里?

 所以.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 我们拭目以待吧。

不通过DotCli发布可以修改一下项目文件,再通过VisualStudio发布!

<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>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-03-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档