.NET Core 提供的发布应用程序选项 self-contained 是共享应用程序的好方法,因为应用程序的发布目录包含所有组件、运行时和框架。您只需要告诉使用者应用程序的入口 exe 文件,就可以使程序运行起来,而不必担心目标计算机上是否存在.NET Core 运行时和应用框架。目前 .NET Core 3.0 Preview 6 已经推出,也包含了更多新功能。其中一个有用的功能就是引入了 PublishTrimmed 发布标志。此标志可以很大程序上减少可执行文件的大小并会创建一个修剪过的自包含单体可执行文件。下面我们来看一下如何发布一个经过修剪的单体可执行文件。

.NET Core 3.0 中发布 self-contained 程序可以使用下面的命令:

上面的命令执行之后会在创建的发布文件夹中包含 self-contained 可执行程序所需的所有文件,文件数大概有 100 个左右,如果想要在目标计算机上运行这个应用程序,那就需要复制这个发布文件夹内所有文件,似乎并不是那么方便,而且这些文件占用的空间也不算小。

这个问题在 .NET Core 3.0 Preview 5 中得到了解决。此版本引入了一个 PublishSingleFile 发布标志,用于生成一个单体 exe 可执行文件。该发布标志的使用方法如下:

或者在项目文件中配置如下节点:

使用此发布标志后只会生成一个 exe 可执行文件和符号文件。见下图

现在只有一个可执行文件了,但其文件大小有点儿小问题,一个可执行程序接近 70MB 。上面说过,在 .NET Core 3.0 Preview 6 中引入了 PublishTrimmed 发布标志,使用该发布选项将不会包含您未使用的类库,以达到减小发布单体文件的尺寸。您可以将上面的两个命令一起使用,如下:

或在项目文件中配置以上两个发布标志:

使用上面的两个命令后,您会发现,单体可执行文件的尺寸只有 29MB 了。对于简单的控制台应用程序来说,它仍然有点儿大,但请注意,这是一个包含了 .NET Core 运行时的 self-contained 应用程序。

以上就是我要介绍的全部内容了。

原文链接:https://www.talkingdotnet.com/create-trimmed-self-contained-executable-in-net-core-3-0/

译者注:

参考链接:

  • https://devblogs.microsoft.com/dotnet/announcing-net-core-3-0-preview-6/

  • https://github.com/mono/linker/blob/master/src/ILLink.Tasks/README.md

原文链接:https://www.cnblogs.com/jRoger/p/create-trimmed-self-contained-executable-in-net-core-3-0.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

.NET Core 3.0 发布小尺寸 self-contained 单体可执行程序相关推荐

  1. 小米推出售价 19999 元的 MIX Alpha;高通已向华为重启供货;.NET Core 3.0 发布 | 极客头条...

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

  2. 9月25日科技资讯|小米推出售价 19999 元的 MIX Alpha;高通已向华为重启供货;.NET Core 3.0 发布

    「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有料的新闻资讯,让所有技术人,时刻紧跟业界潮流. 整理 | 胡 ...

  3. .NET Core 1.0发布:微软开源跨平台大布局序幕

    在6月27日的红帽DevNation峰会上,微软正式发布了.NET Core 1.0.ASP.NET 1.0和Entity Framework Core 1.0,这些产品将全部支持Windows.OS ...

  4. ASP.NET Core 3.0 发布

    随着 .NET Core 3.0 的 GA,其中的 ASP.NET Core 与 Blazor 也相应得到增强,此版本的 ASP.NET Core 的一些重大新特性包括: 使用 C# 构建富交互客户端 ...

  5. ASP.NET CORE 2.0 发布到IIS,IIS如何设置环境变量来区分生产环境和测试环境

    0.前言 因为给前端的测试环境是windows,所以要设置windows上的环境变量,如果上Linux就没有这篇文章了,所以大家不要在意为什么core不放在linux上.  方式一:通过修改发布后的w ...

  6. 【.NET Core 3.0】小技巧 || 原生DI一对多注入

    本文是一个技巧文章,内容很短,但是被提问的频率很高,所以记录下来,以待大家不时之需. 以下的代码,是通过原生的依赖注入来讲解的,其他的第三方框架,可以自己自定义扩展,效果是一样的,那咱们先来回顾下依赖 ...

  7. 微软.Net Core 3.0 预览版7发布:大幅减少 SDK 空间大小

    据悉,这个预览版是 .Net Core 3 中重要的版本,可以视为原计划在 7 月发布的 RC 版本 (引自微软 .NET Core 首席 Program Manager Richard 先生原话), ...

  8. 微软发布.Net Core 3.0 RC1,最终版本定于9月23日

    2019.9.17 微软 宣布推出.NET Core 3.0 Release Candidate 1.就像Preview 9一样,主要专注于为 .NET Core 3.0 发布最终版本 .现在变得非常 ...

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

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

最新文章

  1. Elasticsearch深入11 运维
  2. predict函数 R_学习|R语言做机器学习的常用函数总结
  3. 【转】 android之如何在两个activity之间传递handler_利用broadcast广播机制
  4. 获取客户端网卡MAC地址和IP地址的几种方法(一)
  5. python无人机路径规划算法_快速拓展随机树(RRT)路径规划,python
  6. 第一个帖子吧,我也博客了!
  7. 数据库设计实例(以一张表为例)
  8. 工业相机选型和镜头焦距计算
  9. 网易云易盾正式成为“中国短视频与直播联盟”常务理事
  10. Compiere 开源CRM的比较选择
  11. Unity酱~ 卡通渲染技术分析(一)
  12. 润乾报表简单报表制作流程(胎盘级教程)
  13. 宝存科技推出全球首款大量商用级别的高性能Open-Channel SSD
  14. Excel拆分字符判断是否有汉字
  15. Android图片添加水印图片并把图片保存到文件存储
  16. ES5ES6 day16
  17. maven jar包瘦身
  18. vscode修改PHP注释
  19. 【C语言典例】——day7:尼科彻斯定理
  20. wps公式编辑器怎么用wps段落设置在哪里呢?

热门文章

  1. java高级类_Java高级类特性(一)
  2. 桌面显示激活windows_愚蠢的怪胎技巧:如何在桌面上显示Windows版本
  3. MS CRM 2011 Form与Web Resource在JScript中的相互调用
  4. mt19937 -- 高质量随机数
  5. Linux 练习题-3文件与磁盘 问答
  6. Windows 7 下右键发送到菜单项没了
  7. leetcode 104. Maximum Depth of Binary Tree
  8. php的几种运行模式CLI、CGI、FastCGI、mod_php
  9. [1197]约瑟夫问题 (循环链表)SDUT
  10. Web开发中的矢量绘图(vml,svg)处理和应用