Linux 部署多个版本 .net 方法

一、业务场景

有时候,我们需要在同一台服务器上同时部署 .Net 6.0 或  .Net 7.0 、 .Net 8 ,这个时候就需要安装多个版本的.Net 了

二、操作步骤

1、先到微软官网下载对应版本.Net  SDK

例如下载 .Net7.0,地址

https://dotnet.microsoft.com/en-us/download/dotnet/7.0

下载 .Net 8.0 也是一样的办法,下载地址是 Download .NET 8.0 (Linux, macOS, and Windows)

2、上传SDK到linux服务器

 例如我Net7.0上传路径 是: /usr/local/dotnet/7.0/sdk

 例如我Net8.0上传路径 是: /usr/local/dotnet/8.0/sdk

3、进入上传的路径,进行解压并安装

3.1、安装 7.0

先进入目录  cd /usr/local/dotnet/7.0/sdk
最后执行解压并安装
mkdir -p $HOME/dotnet/7.01 && tar zxf dotnet-sdk-7.0.400-linux-x64.tar.gz -C $HOME/dotnet/7.01

需要注意,执行上面命令后,实际上安装到的路径是: /root/dotnet/7.01/

备注:不一定非要装到 $HOME/dotnet 目录,其他地方也是可以的。具体看个人喜好

接着 编辑文件 /etc/profile
执行 sudo vi /etc/profile  ,在最后加入如下代码
export PATH=$PATH:$HOME/dotnet/7.01
export DOTNET_ROOT=$HOME/dotnet/7.01

实际上就是加到自己安装的路径去

最后刷新配置文件生效
source /etc/profile
验证是否安装成功

dotnet --version

dotnet --info


3.2、安装 8.0

实际上和上面安装7.0的步骤一样,区别就是按照路径不要和7.0在一起就行了,但是需要注意,你安装完成后,执行 dotnet --info 实际上指向的是你第一次安装的版本,如果想查看安装的8.0版本是否成功,可以通过创建软连接方式实现,例如

创建8.0的软连接

sudo ln -s /root/dotnet801/dotnet /usr/local/bin/dotnet8.01

最后执行查询版本是否安装成功

dotnet8.01 --info

三、怎样创建开机自启动服务,自动运行自己的程序

上面说完了怎样安装.net,最后还需要发布自己的应用程序,并设置开机自动启动运行的服务,我们使用 systemd 来实现,具体操作如下

1、 执行  cd /etc/systemd/system

2、创建服务

vim /etc/systemd/system/net7_cvcall_prod_be.service

其中net7_cvcall_prod_be是服务名称,改这里就行了

最后编辑修改服务的配置

[Unit]
Description=net7_pvcall_prod_be service
 
[Service]
WorkingDirectory=/home/pvcc/prod/be/publish
ExecStart=/root/dotnet7/dotnet /home/pvcc/prod/be/publish/Gxpr.Pvcc.ZhonTai.Host.dll   run --urls=http://*:8001
RestartSec=10
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target

需要注意:

Description等号后面的服务名称需要和创建的服务名称一致

WorkingDirectory是指你的程序发布的目录

ExecStart 后面就是指你程序启动运行的命令

如果是设置.net 8.0的应用开启自动启动,实际上直接复制上面的配置,就是改下Description、WorkingDirectory、ExecStart 后面的内容,说白了就是改名称,改路径

3、上面保存后,需要设置开机启动命令,直接执行 systemctl enable net7_cvcall_prod_be.service

4、服务常见命令说明

设置开机启动: systemctl enable redis720.service
启动 systemctl start redis720.service
状态: systemctl status redis720.service ,若看到绿色的active(running)字样说明服务正常启动了。
停止:systemctl stop redis720.service
取消开机自启动 systemctl disable net7_cvcalltest_outapi.service

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hymlx526

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值