当前位置: 首页 > article >正文

Linux 环境下运行 .NET 8.0 core项目

在 Linux 环境下运行 .NET 8.0 项目,.NET 已支持跨平台运行,以下是完整的步骤:

 1. 安装 .NET 8.0 SDK 或运行时
首先需要在 Linux 系统中安装 .NET 8.0 SDK 或运行时。

 1.1 添加 Microsoft 包管理源
运行以下命令添加 Microsoft 包管理源并安装必要的依赖项:

bash
sudo aptget update && sudo aptget install y wget apttransporthttps softwarepropertiescommon
wget https://packages.microsoft.com/config/ubuntu/$(lsb_release rs)/packagesmicrosoftprod.deb O packagesmicrosoftprod.deb
sudo dpkg i packagesmicrosoftprod.deb
sudo aptget update


> 注:根据你的 Linux 发行版,修改上述命令,例如 CentOS、Fedora 等需要其他配置源。

 1.2 安装 .NET SDK 或运行时
安装完整的 SDK(适合开发):

bash
sudo aptget install y dotnetsdk8.0


如果只需要运行应用程序,可以安装运行时:

bash
sudo aptget install y dotnetruntime8.0


 2. 验证安装
确保 .NET 安装正确:

bash
dotnet version


输出类似以下内容即表示安装成功:

8.0.100


 3. 部署 .NET 8.0 项目到 Linux

 3.1 在 Windows/开发环境构建项目
1. 确保项目的 csproj 文件的 TargetFramework 已设置为 .NET 8.0:
   xml
   <TargetFramework>net8.0</TargetFramework>
   
2. 使用以下命令在 Windows 或开发环境中发布项目:
   bash
   dotnet publish c Release r linuxx64 selfcontained=false o ./publish
   
    c Release:使用 Release 配置。
    r linuxx64:指定目标平台为 Linux x64。
    selfcontained=false:依赖 Linux 上的 .NET 运行时(推荐)。
    o ./publish:将输出文件存储在 publish 目录中。

   > 如果你希望应用程序在目标环境上无需额外安装 .NET 运行时,可以设置 selfcontained=true。

 3.2 将文件复制到 Linux
使用 scp 或其他工具将发布目录复制到 Linux:

bash
scp r ./publish username@linuxserver:/path/to/project


 4. 在 Linux 上运行项目
1. 使用 SSH 登录到目标 Linux 服务器。
2. 导航到项目的 publish 目录:
   bash
   cd /path/to/project
   
3. 运行项目:
   bash
   dotnet YourApp.dll
   

 5. 使用服务托管应用程序(可选)
如果你的应用需要长时间运行,可以通过 systemd 服务来管理:

 5.1 创建服务文件
创建一个服务文件,例如 /etc/systemd/system/yourapp.service:

ini
[Unit]
Description=YourApp Service
After=network.target

[Service]
WorkingDirectory=/path/to/project
ExecStart=/usr/bin/dotnet /path/to/project/YourApp.dll
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=yourapp
User=yourusername
Environment=ASPNETCORE_ENVIRONMENT=Production

[Install]
WantedBy=multiuser.target


 5.2 启动服务
1. 重新加载 systemd 配置:
   bash
   sudo systemctl daemonreload
   
2. 启动服务:
   bash
   sudo systemctl start yourapp
   
3. 设置开机启动:
   bash
   sudo systemctl enable yourapp
   

 6. 使用 Docker 部署(可选)
如果更习惯容器化运行应用,可以使用 Docker:

 6.1 创建 Dockerfile
在项目根目录创建 Dockerfile:

dockerfile
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime
WORKDIR /app
COPY ./publish .
ENTRYPOINT ["dotnet", "YourApp.dll"]


 6.2 构建和运行容器
1. 构建镜像:
   bash
   docker build t yourapp:latest .
   
2. 运行容器:
   bash
   docker run d p 5000:80 yourapp:latest
   


http://www.kler.cn/a/451051.html

相关文章:

  • 【幼儿园识物】比大小启蒙资料PDF
  • 【C++】模板与泛型编程(一):定义模板,成员模板
  • LLaMA-Factory(二)界面解析
  • 独一无二,万字详谈——Linux之文件管理
  • vscode 快速切换cangjie版本
  • OpenCV putText增加中文支持
  • 碰一碰发视频源码搭建的技术拓展,支持OEM
  • 【HarmonyOS 5.0】第十二篇-ArkUI公共属性(一)
  • QT程序发布后,mysql在其它电脑设备无法连接数据库
  • LLaMA-Factory(一)环境配置及包下载
  • ubuntu扩展逻辑卷大小 (安装系统时默认只使用一半)
  • mysql修改表字段 ALTER 命令
  • Xilinx整数的处理计算方法
  • c# 实现一个简单的异常日志记录(异常迭代+分片+定时清理)+AOP Rougamo全局注入
  • 第二节:让电机转起来【51单片机-L298N-步进电机教程】
  • 台球助教平台系统开发APP和小程序信息收藏功能需求解析(第十二章)
  • React:前端开发领域的璀璨之星
  • RabbitMQ 的7种工作模式
  • 内部知识库的未来展望:技术融合与用户体验的双重升级
  • 小程序租赁系统开发指南与实现策略
  • myql explain sql分析详解
  • 千兆网中的gmii与rgmii
  • 【人工智能-初级】基于用户的协同过滤推荐算法
  • 超详细!一文搞定PID!嵌入式STM32-PID位置环和速度环
  • CMake 统一配置方式的优势
  • vue3中多层级路由缓存失效问题