试验环境

  • win10 x64
  • centos7.6
  • dotnet-sdk-3.1.101-linux-x64.tar.gz
  • vs2019 16.4.5

参考文章:
.netcore入门3:vs2019开发.netcore 控制台程序(编译、打包、发布)(.netcore 2.2)
.netcore入门5:linux上安装.net core sdk 3.1.101(离线安装和yum仓库安装)
.netcore入门2:深入理解.NET Core的基元: deps.json, runtimeconfig.json, dll文件

试验目的
探究aspnetcore程序的开发、部署(.netcore3.1)

一、新建web应用项目

.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)
.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)
.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)

新建后的解决方案视图如下:
.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)
Properties/launchSettings.json:.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)

emptydemo.csproj.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)
appsettings.json和appsettings.Development.json
.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)
Program.cs
.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)
Startup.cs
.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)

二、调试运行

2.1 首先精简launchSettings.json中关于iis的配置如下:

.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)

这样调试的选项中就没有iisexpress了

2.2 直接运行如下

.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)

三、发布应用(没有外部依赖)

3.1 项目右键,点击"发布"

.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)

3.2 选择文件夹并"创建配置文件"

.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)

3.3 这里将选项"删除现有文件"设置为true(个人习惯)

.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)

3.4 点击发布

.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)

3.5 在发布后的文件夹下执行dotnet .\emptydemo.dll

.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)

3.6 浏览器 查看效果 https://localhost:5001

.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)

3.7 那么发布的这些文件都是干嘛的,有哪些是必须的,哪些是可以删除的呢?

.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)

3.8 发布后的文件简化说明(appsettings.json如果没有配置,可以删除,一般都有用)

Linux下运行一般需要:
.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)
Windows运行(非iis)一般需要:
.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)

四、当应用引用了外部依赖时的发布情况(引用Newtonsoft.Json)

4.1 首先添加外部依赖

.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)

4.2 添加依赖后观察到工程文件的变化如下

.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)

4.3 修改Startup.cs代码如下

.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)

4.4 发布后直接运行如下

.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)

4.5 发布后的文件简化说明(appsettings.json如果没有配置,可以删除,一般都有用)

Linux运行一般需要:
.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)
Windows运行(非iis)一般需要:
.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)

五、部署到linux上(centos7.6)

5.1 将精简后的文件上传到linux的/web目录下,如图所示:

.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)

5.2 linux上运行如下图所示

.netcore入门6:aspnetcore程序的开发、部署(.netcore3.1)(空模板项目)

注意:关闭防火墙、自行安装netcore3.1的sdk

分类:

技术点:

相关文章: