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

在这里插入图片描述  命令运行完毕后,会在项目文件夹中的bin/release/net5.0/public文件夹中发布项目运行所需的一系列文件,如下图所示。在这里插入图片描述
  将publish文件夹复制到桌面中,然后在操作系统终端中运行dotnet TestMVCMySql.dll命令即可启动项目,此时在浏览器中输入网址就能进入项目主页。在这里插入图片描述在这里插入图片描述

独立应用发布方式

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

 <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <RuntimeIdentifiers>ubuntu.20.04-x64</RuntimeIdentifiers>
  </PropertyGroup>

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

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

在这里插入图片描述  命令运行完毕后,会在项目文件夹中的bin/release/net5.0/文件夹中生成一个与要发布的操作系统标识同名的文件夹,项目运行所需的一系列文件都在该文件夹中,如下图所示(仅截了部分内容)。
在这里插入图片描述
  将ubuntu.20.04-x64文件夹复制到桌面中(没有测试在其它没有装.net core运行时的操作系统中发布运行),然后在操作系统终端中运行dotnet TestMVCMySql.dll命令即可启动项目,此时在浏览器中输入网址就能进入项目主页。
在这里插入图片描述  项目发布的学习暂时学习到这里,后续还会跟着参考文献学习如何使用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

### 使用最新版 Visual Studio Code 创建 ASP.NET 网站 #### 安装必要的工具和扩展 为了在 Visual Studio Code (VSCode)创建 ASP.NET 网站,需先确保已安装以下软件: - **Visual Studio Code**: 可从官方网站下载并安装最新版本。 - **.NET SDK**: 下载并安装最新的 .NET SDK 版本[^2]。 还需安装一些 VSCode 扩展来增强开发体验: ```bash code --install-extension ms-dotnettools.csharp ``` 此命令会安装 C# 扩展,提供 IntelliSense 和其他有用的功能支持。 #### 初始化项目结构 打开终端窗口,在目标目录下执行以下命令初始化一个新的 ASP.NET Core Web 应用程序: ```bash dotnet new webapp -o MyWebApp cd MyWebApp ``` 这段代码片段使用 `dotnet` CLI 工具创建了一个名为 "MyWebApp" 的新 ASP.NET Core MVC 项目,并进入该项目文件夹内[^3]。 #### 配置启动设置 编辑 `.vscode/launch.json` 文件配置调试选项。如果该文件不存在,则可以通过点击左侧活动栏上的调试图标,然后选择“创建一个 launch.json 文件”来自动生成模板。以下是基本配置示例外观: ```json { "version": "0.2.0", "configurations": [ { "name": ".NET Core Launch (web)", "type": "coreclr", "request": "launch", "preLaunchTask": "build", "program": "${workspaceFolder}/bin/Debug/net7.0/MyWebApp.dll", // 根据实际框架版本调整 net7.0 "args": [], "cwd": "${workspaceFolder}", "stopAtEntry": false, "serverReadyAction": { "action": "openExternally", "pattern": "\\bNow listening on:\\s+(https?://\\S+)" }, "env": { "ASPNETCORE_ENVIRONMENT": "Development" } } ] } ``` 上述 JSON 对象定义了如何运行应用程序以便于本地测试与调试[^4]。 #### 修改主入口函数 对于某些自定义需求,可能需要更改项目的主入口逻辑。通常情况下,默认生成的 `Program.cs` 文件已经包含了足够的功能来构建简单的应用实例。不过,如果有特殊要求可以参照下面的方式进行适当修改: ```csharp using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Hosting; namespace MyWebApp { public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }); } } ``` 以上展示了标准的应用程序主机创建模式,其中指定了要使用的 Startup 类型作为配置源之一。 完成这些步骤之后就可以开始编写页面视图、控制器以及其他组件了。记得随时保存工作进度并通过内置终端或外部 Git 工具管理源码变更记录。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值