假设我有一个简单的“ 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 我们拭目以待吧。

不通过Dot Cli发布可以修改一下项目文件,再通过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>

祝.NET Core愈来愈好!

在.NET Core 3.0中发布单个Exe文件(PublishSingleFile)相关推荐

  1. .NET Core 3.0 中的新变化

    译者:楚人Leo 译文:http://www.cnblogs.com/leolion/p/10585834.html 原文:https://msdn.microsoft.com/en-us/magaz ...

  2. .NET Core 2.0 Preview2 发布汇总

    前言 关于 ASP.NET Core 2.0 的新功能可以查看 Amazing ASP.NET Core 2.0. 这篇文章是 Priview2中的一些改进. .NET Core 2.0 - Prev ...

  3. 在ASP.NET Core 2.0中创建Web API

    目录 介绍 先决条件 软件 技能 使用代码 第01步 - 创建项目 第02步 - 安装Nuget包 步骤03 - 添加模型 步骤04 - 添加控制器 步骤05 - 设置依赖注入 步骤06 - 运行We ...

  4. .NET Core 2.0终于发布了

    .NET Core 2.0的最终版本终于发布了.这是.NET 开源跨平台的一个重大里程碑, 也是很多支持者.社区.公司共同努力的结果.开发者们可以采用命令行.自己喜欢的文本编辑器.Visual Stu ...

  5. .NET Core 3.0中的数据库驱动框架System.Data

    虽然没有得到很多关注,但System.Data对于.NET中任何关系型数据库的访问都至关重要.因为其前身是ActiveX Data Objects,所以它也被称为ADO.NET.System.Data ...

  6. .NET Core 3.0 中的数据库驱动框架 System.Data

    虽然没有得到很多关注,但System.Data对于.NET 中任何关系型数据库的访问都至关重要.因为其前身是 ActiveX Data Objects,所以它也被称为 ADO.NET.System.D ...

  7. ASP.Net Core 2.0中的Razor Page不是WebForm

    随着.net core2.0的发布,我们可以创建2.0的web应用了.2.0中新东西的出现,会让我们忘记老的东西,他就是Razor Page.下面的这篇博客将会介绍ASP.Net Core 2.0中的 ...

  8. Ubuntu GitLab CI Docker ASP.NET Core 2.0 自动化发布和部署(1)

    相关博文: Ubuntu 简单安装和配置 GitLab Ubuntu 简单安装 Docker Ubuntu Docker 简单安装 GitLab Ubuntu Docker 安装和配置 GitLab ...

  9. net应用程序中发生了未经处理的异常怎么办_介绍一些在.NET Core 3.0中引入的诊断改进工具...

    编者按:即使.NET Core3.1.5已经发布,在进行.NET Core的性能诊断时,我们有时依然不知该从何处下手,那这篇介绍.NET Core3.0中引入的诊断工具,或许能为我们提供参考. 在.N ...

最新文章

  1. 目标检测中的分类和定位冲突问题
  2. flash中物体运动基础之三---------摩擦力,重力,风力,推力,旋转
  3. 用MATLAB作图像识别所需要注意的细节!
  4. [架构]--高并发问题及解决方案
  5. 使用直线标定板进行相机畸变校正,并且进行9点标定(halcon)
  6. 维护win10注册表
  7. ISOLINUX: A bootloader for Linux using ISO 9660/El Torito CD-ROMs
  8. 2018年,加油!!!
  9. 【报告分享】抖音品牌主页运营官方指导手册.pdf(附下载链接)
  10. java解三角函数方程_Java 中的三角函数
  11. js选中文字兼容性解决
  12. Mac系统打开dmg出现 “资源忙” 怎么解决?
  13. 保镖机器人作文_【保镖的作文】_玛雅作文网
  14. C++程序设计的技巧-Pimple的使用
  15. 六个参数帮你全面了解固态硬盘
  16. 五分钟学会前端打包工具webpack
  17. configmap资源简介和应用
  18. 美术2.4 UV原理基础
  19. 苹果备忘录永久删除怎么恢复?分享2个找回备忘录的高效操作
  20. PHP 导出Excel 报错:realpath(): open_basedir restriction in effect. File(/tmp) is not within the allowed

热门文章

  1. CSS边界属性的负值
  2. 开通博客园,新的网络生活的开始
  3. outlook日历不显示_如何在Outlook Online中突出显示不同的日历
  4. java对象实例化的方式
  5. javascript基础修炼(4)——UMD规范的代码推演
  6. 本地开发时连接后台数据库时出现的错误,附自救方法
  7. Maven搭建SpringMVC+Mybatis项目详解【转】
  8. 重要的ui组件——Behavior
  9. 浅谈SQL注入风险 - 一个Login拿下Server(转)
  10. android键盘弹出,聊天背景不变形