关于.net core程序的部署

最近发布.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程序理论上也可以提升启动速度,希望微软能早日完成这个项目。

参考文章:

原文地址:https://www.cnblogs.com/TianFang/p/9864110.html

时间: 2024-11-05 10:27:35

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

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

上一篇文章中我给大家讲述了五种部署ASP.NET Core网站的方法,其中有一种方式是通过Windows服务来进行部署,这样既可以做到开启自启动,又不会因为iis的反向代理而损失部分性能.但是美中不足的是需要借助第三方软件nssm来进行,那么有没有更好并且优雅的方式来进行ASP.NET Core网站的Windows服务方式部署呢?答案是肯定的! 作者:依乐祝 原文链接:https://www.cnblogs.com/yilezhu/p/10380887.html 今天这篇文章我会利用番茄工作法来

跨平台部署.NET Core程序

开发环境:Win10 开发工具:Visual Studio 2015 部署环境:centos 7-x64或macOS 10.12 一.准备工作 (一)开发机器 1. 安装VS2015 .NET Core开发工具:Visual Studio 2015 Tools (Preview 2),下载地址:https://go.microsoft.com/fwlink/?LinkId=827546: 2. 安装.NET Core SDK,下载地址:https://go.microsoft.com/fwlin

.net core程序部署

前期将一些程序切换到了.net core,本文这里记录下windows 下.net core程序部署相关的方法.有同样需求的朋友可以参考一下,以免少走一些弯路. .net core程序部署主要工作就是在目标机器上装上.net core runtime,它可以在微软官方的下载网站上下载. 官方的图比较清晰的介绍了其运行环境,就windows的.net core程序部署而言,主要需要安装如下两个包: .net core runtime asp.net core runtime 如果部署的是.net

ubuntu上部署windows开发的dotnet core程序

目标:完成windows上开发的dotnet core程序部署至linux服务器上(Ubuntu 14.04) windows上开发dotnet core很简单,安装好VS2017,建立相关类型的项目进行开发即可. Linux服务器中需要做以下几个工作: 1.安装dotnet core, 运行dotnet程序必备条件. 2.安装supervisor守护进程,可以帮助你自动启动站点. 3.安装nginx做代理 1. 安装dotnet core #依次执行下面的命令,安装的版本有问题的话,按照错误提

.Net Core 在Linux服务器下部署程序--(3). 部署.net Core程序

确认第二步中的软件已安装完成 lrzsz文件上传下载软件 zip与unzip压缩包软件 net core 相关软件 确认上述软件安装完成之后,开始部署程序 创建部署文件夹 我的习惯是在usr文件夹下新建publish文件夹,然后在publish文件夹中各创建各个程序对应的文件夹,在文件夹下back和front分别来存放前端和后端部署程序 由当前所在文件夹,进入usr文件夹 查看当前所在文件夹  进入usr文件夹 : cd /usr 创建publish文件夹,并查看文件夹是否创建成功 创建publ

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

一.创建项目 本篇文章介绍如何将一个ASP.NET Core Web程序部署到Windows系统上.这里以ASP.NET Core WebApi为例进行讲解.首先创建一个ASP.NET Core WebApi项目,使用默认的Values控制器,这里使用Visual Studio 2019创建一个ASP.NET Core 3.1d的WebApi项目. 创建新项目的时候选项ASP.NET Core Web应用程序,如下图所示: 配置新项目界面界面设置项目名称和位置,如下图所示: 选择.Net Cor

ASP.NET Core教程:ASP.NET Core程序部署到Linux

一.前言 这篇文章我们将讲解如何将ASP.NET Core 程序部署到Linux.这里我们使用的是虚拟机里面安装的Centos7.这里的ASP.NET Core程序,以上篇文章中发布的框架依赖文件为例进行讲解. 二.安装运行时环境 1.在线安装 我们只是在Linux系统上面部署应用程序,所以只需要安装ASP.NET Core Runtime即可.在安装.NET之前,我们需要先注册Microsoft密钥和源,在终端里面执行下面的命令: sudo rpm -Uvh https://packages.

vs2017 远程调试部署在centos上的asp.net core程序(通过附加程序的方式)

    前言 有时候必须在服务器上调试代码.比如做微信公众号开发,需要做一些url回调, 此时无法在开发电脑上做调试.所以远程调试代码就很有必要了.经过2个小时摸索,顺利实现. (注意:用jexus时无法远程调试,因为jexus隐藏了dotnet进程,它把dotnet作为自己的子进程,所以无法附加dotnet进程.) 1.在vs2017中设置centos服务器ssh连接信息 菜单 工具->选项    跨平台-- 连接管理器,如下图,添加ssh服务器 2.在centos服务器上安装unzip软件

asp.net core的基本部署

随着.net core正式版的推出,我也准备开始使用这种微软有史以来第一次跨平台的技术(本人从来不学也不看beta版的技术),使用VS2017新建一个.net core的web应用程序 这里随便选什么都可以,其实创建出来的都一样,在core中,MVC和WebApi的管道已经统一,所以在类库中已经不会再出现API字眼(虽然实际上,现在MVC早已没人用了)的类了, 建完以后,大概长这样 忽略host.json,那个是我自己加的,打开program,可以发现,web应用程序本质上就是一个控制台程序,