.NET Core 应用最小化独立部署发布,.NET Core 默认应用独立发布,大概占用50m左右的空间,不同的系统大小有所区别。

.NET Core 的发布之前我也有所介绍,.NET Core 跨平台发布(dotnet publish) 具体可以看这篇文章。

今天来看看.NET Core 最小化发布部署,可以节省一半左右的空间。

使用 dotnet new 命令创建应用

然后打开 project.json 文件,然后将 frameworks 部分替换为以下内容:

  "frameworks": {"netstandard1.6": {}},

这有两个用途:

它表示应用只使用 .NET 标准库。

删除 "type": "platform" 属性即表示将框架作为一套本地组件提供给应用,而不是作为系统范围内的平台包。

接着将 dependencies 部分替换为以下内容:

 "dependencies": {"NETStandard.Library": "1.6.0","Microsoft.NETCore.Runtime.CoreCLR": "1.0.2","Microsoft.NETCore.DotNetHostPolicy":  "1.0.1"},

接着创建 runtimes 部分,然后指定该应用作为目标的每个平台的运行时标识符。 以下 runtimes 为 win10 64位 以及 ubuntu14.04 64位。

  "runtimes": {"win10-x64": {},"ubuntu.14.04-x64":{}}

然后运行 dotnet restore 命令,以还原项目中指定的依赖项。

还原好以后运行dotnet publish 命令发布对应系统版本的应用。

dotnet publish -r win10-x64
dotnet publish -r ubuntu.14.04-x64

也可增加 -c Release 指定为发布版本,如:dotnet publish -c Release -r win10-x64

如未指定Release ,默认在Debug 目录下。

下图左边为最小化发布,右边是正常发布,都可以正常运行。

将对应标识下的publish 文件夹复制到对应系统,即可运行。

完整 project.json 文件如下。

{"version": "1.0.0-*","buildOptions": {"debugType": "portable","emitEntryPoint": true},"dependencies": {"NETStandard.Library": "1.6.0","Microsoft.NETCore.Runtime.CoreCLR": "1.0.2","Microsoft.NETCore.DotNetHostPolicy": "1.0.1"},"frameworks": {"netstandard1.6": {}},"runtimes": {"win10-x64": {},"ubuntu.14.04-x64":{}}
}

经过探索,如果只是默认控制台输出还可以减少体积,将 NETStandard.Library 引用替换为具体的引用,不过这个没有多大必要。

更小化:

  "dependencies": {"System.Runtime":"4.1.0","System.Console":"4.0.0","Microsoft.NETCore.Runtime.CoreCLR": "1.0.2","Microsoft.NETCore.DotNetHostPolicy": "1.0.1"},

此方法对ASP.NET Core  同样可以,需要注意的是,如果项目引用了相关工具,需要自己做调整。

如果你觉得本文对你有帮助,请点击“推荐”,谢谢。

转载于:https://www.cnblogs.com/linezero/p/netcoremini.html

.NET Core 最小化发布相关推荐

  1. Unity发布PC平台exe的窗口花样(WindowsAPI、捕获关闭事件、隐藏窗口标题栏、隐藏最小化最大化关闭按钮等等)

    文章目录 一.前言 二.创建脚本 三.代码 四.赋值脚本的按钮成员 五.打包运行测试 一.前言 游戏项目是使用Unity开发的,发布了PC平台的exe. 然后策划提出这么一个需求: 可否让玩家点击窗口 ...

  2. 最小化局部边际的合并聚类算法(中篇)

    作者:钱烽 三.合并聚类算法 基于定义2所提出的相似度定义,我们在图2中给出最小化局部边际的合并聚类算法详细执行过程.首先,针对数据集中可能存在的噪声数据,我们对所有样本点进行孤立点检测.然后,作为A ...

  3. Centos 7 64位 minimal 最小化安装的系统中静默安装oracle 11g r2(无图形化安装)

    一 安装运行环境(操作系统环境) 1,最小化安装 linux CentOS7 我使用的镜像包:CentOS-7-x86_64-Minimal-1708.iso 操作系统安装步骤:https://blo ...

  4. 树莓派4直接运行linux,树莓派4最小化安装Linux

    树莓派4最小化安装Linux toc 1.本文目的 Raspberry Pi 4 Model B发布了半年了,其强大的性能与低廉的价格使得其非常的热门. 下面来看一下主要的功能 1.5GHz 4核心6 ...

  5. 生产服务器环境最小化安装后Centos 6.5优化配置备忘

    本文 centos 6.5 优化 的项有18处: 1.centos6.5最小化安装后启动网卡 2.ifconfig查询IP进行SSH链接 3.更新系统源并且升级系统 4.系统时间更新和设定定时任 5. ...

  6. .NET Core 容器化调查

    前几天在微信朋友圈做了一个简单的调查,参与人数有500人,调查结果如下: 使用K8S的比例非常类似于2017年初我在公众号里针对.NET Core的使用情况的比例..NET Core是针对云原生应用开 ...

  7. delphi 关闭时缩小到托盘_delphi 实现最小化系统托盘

    1.new -->application 2.在form1中加入一个tPopMenu 命名为pm1 3.uses ShellAPI; 4.定义一个常量在 const WM_TRAYMSG = W ...

  8. linux CentOS7最小化安装环境静默安装Oracle11GR2数据库(修改配置文件_06)

    接上一篇:linux CentOS7最小化安装环境静默安装Oracle11GR2数据库(上传安装包并解压_05) linux CentOS7最小化安装环境静默安装Oracle11GR2数据库(修改配置 ...

  9. centos7 最小化安装 无 ifconfig,netstat 的安装

    centos7 最小化安装 无 ifconfig,netstat 的安装 centos7 最小化安装之后,默认是没有 ifconfig,netstat命令的: 我们可以直接使用 yum -y inst ...

最新文章

  1. 谷歌更强 NLP 模型 XLNet 开源:20 项任务全面碾压 BERT!
  2. parallels for linux,在 Parallels Desktop 上安装 Remix OS PC
  3. 子网掩码、最大主机、最大子网数的计算
  4. Android实现自定义相册,在Android Gallery App中创建自定义相册
  5. treelist 判断父子节点_DOM(4)-节点
  6. Javascript屏蔽IE和Firefox浏览器默认按键响应(快捷键功能)
  7. 软件架构--工业软件架构分析
  8. 网件刷breed_斐讯K2刷不死breed加padavan华硕固件教程
  9. 什么网页游戏是按地地狱划分服务器的,不思议迷宫地域边境详细攻略 全方位介绍地狱边境所有玩法...
  10. 用计算机信息术语感恩老师,赞美老师锦旗用语大全 感恩老师的句子
  11. python 公开课_python公开课|可以用Python做的十件事,刚开始学python,你一定要知道...
  12. Android之UVC调试
  13. 如何获取android手机mac地址,Android手机如何获取Mac地址
  14. ROS操作系统快速入门
  15. html文标题党,「深度好文」教你如何成为一个合格的标题党
  16. 结构方程模型(SEM)及其R实现
  17. dsm操作系统服务器,DSM 5.1操作系统提供以下新功能
  18. mapbox-gl开发教程(一):搭建前端开发环境
  19. 根据布线方式划分,目前智能家居布线方式,主要有哪几种
  20. javaBean:java语言写成的可重用的组件。

热门文章

  1. lol什么服务器出无限活力,《LOL》无限火力模式什么时候出 无限火力模式上线时间一览...
  2. HTML5语言教程:渐进使用HTML5语言识别
  3. 如何理解 Web API
  4. Python开发Day03
  5. IOS7开发~API变化
  6. push_heap算法 (即满足max-heap条件,最大值在根节点)
  7. 敏捷个人2012.7月份线下活动报道:珠海 时中法、深圳 敏捷个人理念
  8. PAT1066 Root of AVL Tree (25)(AVL树)
  9. JSP学习笔记(一):JSP语法和指令
  10. ubuntu创建、删除文件及文件夹,强制清空回收站方法