目录
出发点:C#写好的控制台程序包含的功能为订阅设备端的数据,并将数据存储到本地电脑,但是本地电脑有时候会关机,如何将该程序部署到服务器端运行,并长期的保存数据
一、C#控制台程序发布操作步骤
1)在开发环境中选择生产-》发布选定内容
2) 选择下一步操作,并选择目标框架net6.0、目标运行时linux-x64 目标位置更改为自己想要的路径以方便查看
3)配置完成后选择发布按钮
4) 发布路径下找到发布的内容
5)查看linux-x64内容
二、将该发布的linux包压缩并上传到linux服务器的指定位置处
三、安装Linux的下的.net运行环境
在运行dotnet -h命令时会报错如下:
可行的安装方法如下【1】
1)移除之前存在的.net包(确保它们不会从错误的仓库中安装)
编辑
2)配置微软的仓库以忽略.net包
3)删除之前自行安装的dotnet包
4)手动安装dotnet包
#1 下载安装包
#2 安装SDK
#3 配置环境
#4 验证安装是否成功 dotnet -h
四、运行程序
参考
C#控制台开发环境:
Win11 x64 开发框架net5.0
服务器环境:ubuntu22.04
在服务器环境ubuntu22.04下支持的net环境为:net6.0以上
在 Ubuntu 22.04 上安装 .NET - .NET | Microsoft Learn
为此在C#控制台程序打包发布时选择的框架应该为net6.0
注意:报错问题解决 A fatal error occurred. The folder [/usr/share/dotnet/host/fxr] does not exist
解压缩方式例如:
rar x linux-x64.rar
参考该安装方式:在 Ubuntu 22.04 上安装 .NET - .NET | Microsoft Learn
A fatal error occurred. The folder [/usr/share/dotnet/host/fxr] does not exist
尝试了:
.net - A fatal error occurred. The folder [/usr/share/dotnet/host/fxr] does not exist - Stack Overflow
不能有效解决
原因是:在系统上有两个dotnet的文件夹如下
One symptom of these problems is that both the /usr/lib64/dotnet
and /usr/share/dotnet
folders are on your system.
sudo apt remove 'dotnet*' 'aspnet*' 'netstandard*'
echo 'excludepkgs=dotnet*,aspnet*,netstandard*' | sudo tee -a /etc/yum.repos.d/microsoft-prod.repo
rm -rf dotnet
Download .NET 6.0 SDK (v6.0.415) - Linux x64 Binaries
wget https://download.visualstudio.microsoft.com/download/pr/62a75533-4a7d-47e3-9863-4ab5eea04ea8/d802c8f82a8c2b5f276f68b87c682b70/dotnet-sdk-6.0.415-linux-x64.tar.gz
mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-6.0.415-linux-x64.tar.gz -C $HOME/dotnet
export DOTNET_ROOT=$HOME/dotnet
export PATH=$PATH:$HOME/dotnet
或者可以在bashrc中配置
dotnet xxx.dll
nohup dotnet xxx.dll &
在服务器后台可看到执行成功!
【1】Troubleshoot .NET package mix ups on Linux - .NET | Microsoft Learn
【2】Download .NET 6.0 SDK (v6.0.415) - Linux x64 Binaries
【3】 下载 .NET 6.0 (Linux、macOS 和 Windows)
【4】 .net - A fatal error occurred. The folder [/usr/share/dotnet/host/fxr] does not exist - Stack Overflow
【5】 C# 控制台程序发布到服务器Linux系统上运行_c# linux 系统服务_QQ128619的博客-CSDN博客
【6】linux 安装dotnet sdk_linux安装dotnet-CSDN博客