ASP.NET Core 部署

作者 Zhendong Ho 日期 2020-02-22
ASP.NET Core 部署

.NET Core 部署类型

  • FDD,Framework-dependent(依赖框架)
  • SCD,Self-contained(自包含)
  • FDE,Framework-dependent executables(FDD和SCD混合)

Framework-dependent

优点

  • 无需配置服务器的操作系统
  • 部署的包很小
  • .NET Core是共享的

缺点

  • 只有在预先安装了.NET Core的情况下才能运行
  • 可能会有兼容性问题

Self-contained

优点

  • 可以对你使用的.NET Core版本进行单独隔离的控制
  • 应用程序100%可在目标系统运行
  • 不同.NET Core版本的应用可无干扰共存并运行

缺点

  • 需要配置目标服务器操作系统
  • 部署包比较大

Framework-dependent executables

  • 自包含的部署
  • 会使用以前安装过的.NET Core的资源
  • 生成系统原生的可执行文件

部署示例

FDD

在VS 2019打开Three项目。项目右键,点击发布。发布目标选择文件夹,点击创建配置文件,然后重命名为Portable

编辑配置文件。在设置中,部署模式选择框架依赖,目标运行时选择可移植,即FDD。保存后点击发布。

发布完成后点开目录,可以看到发布后的文件。

image-20200222123530282

运行

  1. 直接双击发布目录下的Three.exe运行。
  2. 在发布目录中运行cmd,输入命令dotnet Three.dll运行。

SCD

windows

在发布配置文件中点击新建,发布目标选择文件夹修改路径,重命名为win10

编辑配置文件,部署模式选择独立,目标运行时选择win-x64,即SCD。保存后点击发布。

发布完成后点开目录,可以看到,SCD发布后的文件与FDD发布后的文件有区别并且文件更多(包含了.NET Core运行时和相关依赖)。

image-20200222130145037

运行:在发布目录中找到Three.exe并打开。

linux

在发布配置文件中点击新建,发布目标选择文件夹修改路径,重命名为ubuntu

编辑配置文件,部署模式选择独立,目标运行时选择linux-64,即SCD。保存后点击发布。

发布完成后点开目录,可以看到,发布文件中有一些linux系统下的文件。其他文件与windows方式无太大区别。

image-20200222132119053

FDE

在发布配置文件中点击新建,发布目标选择文件夹修改路径,重命名为Fde

编辑配置文件,部署模式选择框架依赖,目标运行时选择win-x64,即FDE(目标运行时选择可移植就是FDD,选择具体操作系统就是FDE)。保存后点击发布。

发布完成后点开目录,可以看到如下文件,与FDD发布后的文件看不出区别。

image-20200222133256849

该目录包含:

  1. 代码生成的程序集
  2. 不在.NET Core运行时的dll