安装 .net 运行时或 SDK:在 ubuntu/debian 上注册 microsoft 源并安装 dotnet-runtime-8.0 或 SDK;2. 发布应用:使用 dotnet publish 命令发布为框架依赖或自包含格式;3. 部署文件:将发布目录复制到 linux 服务器;4. 运行应用:赋予执行权限后直接运行;5. 进程管理:通过 systemd 创建服务实现后台运行与自动重启,确保稳定部署。

.NET 在 Linux 环境下部署和运行已经非常成熟,尤其是从 .NET Core 开始,跨平台支持成为核心特性。只要正确配置环境,.NET 应用可以在主流 Linux 发行版上稳定运行。以下是具体操作步骤和注意事项。
安装 .NET 运行时或 SDK
在 Linux 上运行 .NET 应用,需要先安装对应的 .NET 运行时(Runtime)或 SDK。如果只是部署应用,推荐安装运行时以减少体积;若需编译或开发,则安装 SDK。
以 Ubuntu/Debian 为例:
- 注册 Microsoft 密钥和源:
- 安装 apt 更新并安装 .NET 运行时:
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install -y apt-transport-https
sudo apt-get update
sudo apt-get install -y dotnet-runtime-8.0 # 或 dotnet-sdk-8.0
其他发行版(如 centos、RHEL、SUSE)可参考官方文档获取对应安装命令。
发布 .NET 应用
在开发环境中将应用发布为“框架依赖”或“自包含”格式。
- 框架依赖发布:目标机器需安装对应版本的 .NET 运行时。
- 自包含发布:应用自带运行时,体积较大但无需预先安装 .NET。
dotnet publish -c Release -r linux-x64 –self-contained false
dotnet publish -c Release -r linux-x64 –self-contained true
发布后会生成一个独立目录,包含所有运行所需文件。
部署与运行
将发布后的文件复制到 Linux 服务器(可用 scp、rsync 等工具)。
若提示权限不足,先添加执行权限:
chmod +x YourApp
后台运行与进程管理
生产环境下建议使用 systemd 或守护进程工具管理应用生命周期。
创建 systemd 服务示例(/etc/systemd/system/myapp.service):
[Unit]
Description=My .NET Application
After=network.target
[Service]
Type=simple
User=myuser
WorkingDirectory=/var/www/myapp
ExecStart=/var/www/myapp/YourApp
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
启用并启动服务:
sudo systemctl daemon-reexec
sudo systemctl enable myapp
sudo systemctl start myapp
可通过 journalctl -u myapp 查看日志。
基本上就这些。只要环境匹配、权限设置正确,.NET 应用在 Linux 上运行很稳定。