P18 .Net Core 部署

P18 .Net Core 部署

.Net Core 部署类型.

  • FDD, Framework-dependent
  • SCD, Self-contained

FDD 即:依赖于 Framework(框架)
SCD 即:自包含,什么都不需要.

FDD Framework-dependent

  • 优点:

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

    • 只有在预先安装了 .Net Core的情况下才能运行.
    • 可能会有兼容性问题. (应用程序需要的 .Net Core版本不一致)

SCD Self-contained

  • 优点:

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

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

FDE Framework - Dependent executables

FDE 模式不常用,如果需要了解,我们需要去查询官方文档.
FDE 模式可以总结为是, FDD模式和SOD模式的结合体.

部署模式 选择: 依赖框架,而 目标运行时 选择:除可移植之外的系统类型,即是FDE 部署模式.

FDE不是模式生成的文件包括: 自己写的代码生成的程序集,以及不在.Net Core运行时中的dll也会生成进来.

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

发布过程

第一步我们先右击需要发布的 .Net Core 项目(前提是能编译通过). 选择发布:
选择发布

选择文件夹,我们可以修改文件夹所在的位置,然后点击创建配置文件:
选择文件夹

此时如果我们想修改的话我们需要点击编辑:
编辑配置

在弹出的页面使用默认的文件系统,并点击设置:
发布配置

进行设置:
修改配置

配置: 表示使用何种发布模式 如: Release , Debug
目标框架: 表示允许此程序需要的 .Net Core 版本.
部署模式: 有框架依赖(FDD),独立(SCD)
目标运行时:
目标运行时
可移植: 表示当前的程序依赖于 .Net CLR 来运行我们的程序,即,我们不再需要生成具体平台的可执行程序了,如:windows下的exe程序.

接下来,点击保存,之后点击发布,之后等待发布结束即可.

表示发布已经结束,并发布成功
表示发布已经结束,并发布成功

发布成功之后会生成如下文件:
发布文件

.Net Core 下载地址

使用FDD模式发布的 .Net Core 项目,我们需要在运行的系统上安装 .Net Core运行环境,否则无法使用此 .Net Core 项目.

由于项目要求使用的是 .Net Core 3.1,我电脑上没有安装 .Net Core 3.1 框架所以会运行失败.

运行失败例:
运行失败

下面我们装 .Net Core 3.1.3 共享框架
下载运行时

.Net Core 3.1.3 共享框架安装完成.
安装完成

我们再运行一下:

运行失败
运行失败

还是运行失败,我们注意到:

  • It was not possible to find any compatible framework version
    The framework 'Microsoft.NETCore.App', version '3.1.3' was not found.
    找不到任何兼容的框架版本找不到版本为“3.1.3”的框架“Microsoft.NETCore.App”。
  • You can resolve the problem by installing the specified framework and/or SDK.
    你可以通过安装指定的框架和/或SDK来解决问题。

如果我们希望在windows左面运行 .Net Core 程序我们需要下载Run Desktop apps 中的下载项,如果想在windows 服务器(IIS)上运行 .Net Core项目,我们需要选择Run Server apps 中的下载项,在Linux系统中需要运行.Net Core 项目下载Linux运行依赖即可.
复制上面的网址进行下载:
Windows系统相关下载

Liunx系统相关下载
Liunx系统相关下载

安装:
安装

安装完成
安装完成

再一次运行:
运行成功

检查是否可以访问
检查是否可以访问

几个和 .Net Core 相关的cmd 命令

查看当前使用的 .Net Core 版本

dotnet -- version

查看当前windows计算机上安装的所有版本 以及版本地址

dotnet -- info

使用 .Net 帮助命令

dotnet -- help

使用 SCD 部署类型进行部署

部署配置
部署配置

将部署模式选择为:独立
将目标运行时:选择你想要运行的系统类型,保存,然后发布即可.

这个发布过程就会相对于FDD模式有就有点慢了,因为它需要包含 .Net Core相关的运行时,以及一些依赖文件.

发布成功
发布成功

我们可以看到发布后的文件多了很多文件.
发布结果

此时我们运行一下程序发现可以成功了:
发布成功

并且可以顺利的请求到:
请求成功能

沿用上面的操作,我们使用SCD部署类型也可以生成自包含的,无依赖的 .Net Core项目文件,并将其部署至Liunx或者其它操作系统之上.

原文地址:https://www.cnblogs.com/HelloZyjS/p/12575647.html