VSCode创建ASP.NET Core MVC项目(4:项目发布)

  之前的ASP.NET Core MVC项目文章中,运行程序都是在VSCode的终端中使用dotnet run命令进行的。正式使用时,肯定需要项目能够脱离开发工具运行。
  先前在Windows中基于.net framework开发的程序,如果是winform程序,则直接编译成exe程序运行,或者是打包成安装文件安装运行,如果是webservice服务,一般编译后通过IIS部署。
  现在在Ubuntu中,微软提供了两种方式发布ASP.NET Core MVC项目:依赖于框架的发布方式和独立应用发布方式,现一一简介如下:

依赖于框架的发布方式

  顾名思义,依赖于框架的发布方式需要项目所在操作系统安装有.net core的运行时,就像.net core 之前的程序运行需要安装对应版本的.net framework一样。本文重在展示发布过程,对这两种发布方式的详细介绍请见参考文献1-2。
  用VSCode打开项目,然后在终端中依次运行以下命令(关于命令的介绍请见参考文献3)。命令的运行效果如下图所示。

在dotnet restore
dotnet build
dotnet publish -c release

VSCode创建ASP.NET Core MVC项目(4:项目发布)_第1张图片  命令运行完毕后,会在项目文件夹中的bin/release/net5.0/public文件夹中发布项目运行所需的一系列文件,如下图所示。VSCode创建ASP.NET Core MVC项目(4:项目发布)_第2张图片
  将publish文件夹复制到桌面中,然后在操作系统终端中运行dotnet TestMVCMySql.dll命令即可启动项目,此时在浏览器中输入网址就能进入项目主页。VSCode创建ASP.NET Core MVC项目(4:项目发布)_第3张图片VSCode创建ASP.NET Core MVC项目(4:项目发布)_第4张图片

独立应用发布方式

  独立应用发布方式是指发布后的项目不需要操作系统安装.net core运行时,项目发布过程中将项目的所有依赖的文件都一起发布。本项目在Ubuntu20.04开发、测试,因此本文展示如何将项目以独立应用形式发布到Ubuntu20.04中,由于系统中已安装了.net 5,本文仅展示过程,不进行测试。
  首先在.csproj项目文件中的PropertyGroup节点下增加要发布的操作系统标识(详细的标识请见参考文献4,本文中的标识根据参考文献1得来):

 <PropertyGroup>
    <TargetFramework>net5.0TargetFramework>
    <RuntimeIdentifiers>ubuntu.20.04-x64RuntimeIdentifiers>
  PropertyGroup>

  然后在VSCode的终端中依次运行以下命令,最后一个命令中指定了要发布的系统,-r参数发布针对给定运行时的应用程序。命令的运行效果如下图所示。

dotnet restore
dotnet build
dotnet publish -c release -r ubuntu.20.04-x64

VSCode创建ASP.NET Core MVC项目(4:项目发布)_第5张图片  命令运行完毕后,会在项目文件夹中的bin/release/net5.0/文件夹中生成一个与要发布的操作系统标识同名的文件夹,项目运行所需的一系列文件都在该文件夹中,如下图所示(仅截了部分内容)。
VSCode创建ASP.NET Core MVC项目(4:项目发布)_第6张图片
  将ubuntu.20.04-x64文件夹复制到桌面中(没有测试在其它没有装.net core运行时的操作系统中发布运行),然后在操作系统终端中运行dotnet TestMVCMySql.dll命令即可启动项目,此时在浏览器中输入网址就能进入项目主页。
VSCode创建ASP.NET Core MVC项目(4:项目发布)_第7张图片  项目发布的学习暂时学习到这里,后续还会跟着参考文献学习如何使用nginx配置反向代理。

参考文献:
[1]ASP.NET Core跨平台开发从入门到实践
[2]https://docs.microsoft.com/zh-cn/aspnet/core/performance/memory?view=aspnetcore-5.0
[3]https://docs.microsoft.com/zh-cn/dotnet/core/tools/dotnet
[4]https://docs.microsoft.com/zh-cn/dotnet/core/rid-catalog

你可能感兴趣的:(dotnet编程,Ubuntu,VSCode,ASP.NET,Core,发布,MVC)