最近发布.net core程序的时候,发现它是可以独立部署的,它支持如下两种部署方式:

  • 依赖框架的部署FDD。只发布我们的程序,运行前用户需要手动安装.net core runtime。
  • 独立部署SCD。发布我们的程序和.net core runtime,即我们的程序可以运行在没有安装..net core runtime的机器上。

大多数时候,我们采用的是FDD模式,这样发布的东西比较少,就几个dll就够了,并且能够跨平台,经常是windows版本写好的拿到linux上直接运行,非常方便。

一个简单的示例如下: dotnet publish --self-contained -r win-x64

主要是加入了--self-contained指令,另外,由于FDD模式发布的是原生程序,因此还需要用-r指定运行平台。

这种方式下,由于将runtime一并发布了,发布的程序占用空间较大,我试了一下,大概有60m,压缩后也有28m。不过有人发布了一个程序IL Linker,它可以分析程序实际依赖的dll,将没有使用到的dll从打包中剔除,号称可以将体积缩小一半。

需要注意的是,即使是以独立方式发布的.net core程序,也不一定能在对方的机器上运行还需要满足..net core运行环境才行,具体可以参考官方文章Windows 上 .NET Core 的决条件。简单的来讲,对于低版本的windows(如win7),需要如下两个条件:

另外,微软也在开发一个大招AOT CoreRT,类似之前提的.net native,简单的来书就是通过AOT将.net core程序直接编译成native程序,园子里有人体验过,最终发布的一个asp.net core程序也不到4m,可以说非常苗条了,并且native程序理论上也可以提升启动速度,希望微软能早日完成这个项目。

参考文章:

关于.net core程序的部署的更多相关文章

  1. 来个干货——使用VS2019发布.NET Core程序并部署到IIS的最新教程

    使用VS2019发布.NET Core程序并部署到IIS,不管你是使用.NET Core开发的是Web API还是网站类的程序,如果你是部署到IIS,那么下面的内容都适合于你,不会将.NET Core ...

  2. .Net Core程序的部署(FDD与SCD)

    最近打算做一个公司的代码走查工具,思前想后觉得正好可以当作一个Core的实践机会,于是上官网看了下资料,顺便作了一下笔记方便以后查阅. 注1:这里的Core程序部署指的是.Net Core而非Asp. ...

  3. 把Asp.net Core程序代码部署到Ubuntu(不含数据库)

    今天记录一下第一次把.net core 程序发布到linux系统.linux用的是ubuntu Server 18.04版本.运行的IDE是vs 2019,发布出来是.net core 2.2版本. ...

  4. 使用VS 2019发布.net core程序并部署到IIS的最新教程

    不管你是使用.net core开发的是web api还是网站类的程序,如果你是部署到IIS,那么下面的内容都适合于你,不会将.net core程序部署到IIS的朋友,可以看看这篇手把手教你部署.net ...

  5. 如何优雅的利用Windows服务来部署ASP.NET Core程序

    上一篇文章中我给大家讲述了五种部署ASP.NET Core网站的方法,其中有一种方式是通过Windows服务来进行部署,这样既可以做到开启自启动,又不会因为iis的反向代理而损失部分性能.但是美中不足 ...

  6. Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署

    运行环境 照例,先亮环境:软件的话我这里假设你已经批准好了.net core 运行环境,未配置可以看我的这篇[linux(centos)搭建.net core 运行环境] 腾讯云 centos:7.2 ...

  7. Asp.Net Core 程序部署到Linux(centos)生产环境(一):普通部署

    运行环境 照例,先亮底 centos:7.2 cpu:1核 2G内存 1M带宽 辅助工具:xshell xftp 搭建.net core运行环境 .net core 的运行环境我单独写了一篇,请看我的 ...

  8. 运行Vue在ASP.NET Core应用程序并部署在IIS上

    前言 项目一直用的ASP.NET Core,但是呢我对ASP.NET Core一些原理也还未开始研究,仅限于会用,不过园子中已有大量文章存在,借着有点空余时间,我们来讲讲如何利用ASP.NET Cor ...

  9. .Net Core 在Linux服务器下部署程序--(2). 部署前需要安装的软件及SDK

    安装通用软件 : ping , telnet , lrzsz , zip , wget 安装ping软件,用于测试当前服务器与其他服务器之间的网络通畅情况,和Windows的Ping类似 执行ping ...

随机推荐

  1. 第12月第26天 swift 下划线

    1. The _ is used to define that the parameter is not named If you have multiple _ it states that you ...

  2. 交互题(二分)(D. Game with modulo)

    题目链接:http://codeforces.com/contest/1104/problem/D 题目大意:给出一个式子 x%a y%a,会返回结果,如果返回x代表x%a>=y%a.如果返回y ...

  3. 首发:极简的Centos主机监控方法,分分钟即可使用【转】

    需求天天有,今年事更多.硬盘测试刚刚完成,就又来了性能监控的需求.一般我们生产就用zabbix了,用起来还行,就是蛮多脚本要写.开发和测试都是分散的,经常还要重装系统,用zabbix就算了,开发和测试 ...

  4. c#调用c++ dll 入坑记录

    1.DLL引用坑 [DllImport("NetDLL.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConve ...

  5. xunsearch 迅搜初探

    2014年1月2日 19:34:12 [root@localhost bin]# ./php /usr/local/lamp/xunsearch/sdk/php/util/Quest.php demo ...

  6. linux如何查看端口被哪个进程占用?

    参考:https://jingyan.baidu.com/article/546ae1853947b71149f28cb7.html 1.lsof -i:端口号 2.netstat -tunlp|gr ...

  7. python2.x下pip install mysql-python报错解决办法

    在https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python 下载该驱动网盘链接:https://pan.baidu.com/s/1r0fNYnU ...

  8. .NetCore下使用Prometheus实现系统监控和警报 (一)介绍【译】

    [译]原文https://prometheus.io/docs/introduction/overview 什么是Prometheus? Prometheus是一个开源系统监控和警报工具包,最初起源于 ...

  9. xgboost 实践

    xgboost 安装:xgboost:Scalable and Flexible Gradient Boosting github:  eXtreme Gradient Boosting 中文教程:可 ...

  10. vs2010 打包安装

    https://jingyan.baidu.com/article/b7001fe184e4e50e7382dd4e.html 1 建立安装项目2 要安装的文件都添加到应用程序文件夹3 在应用程序文件 ...