You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Raspberry Pi 3B上运行C# Discord Bot时遇运行故障求助

解决Raspberry Pi 3B上运行Discord.Net机器人的问题

首先得给你理清一个关键误区:Discord.Net从2.x版本开始就优先适配.NET Core/.NET 5+,Mono对这类现代.NET库的兼容性已经很差,尤其是在树莓派的ARM架构上,这大概率是你运行.exe一直失败的核心原因。下面是一步步落地的解决方案:

1. 先清理Mono(可选但推荐)

既然要切换到官方支持的运行时,先把Mono卸载避免冲突:

sudo apt remove --purge mono-runtime mono-complete
sudo apt autoremove

2. 在Raspbian上安装.NET运行时

树莓派3B属于ARMv7架构,推荐安装稳定的LTS版本(比如.NET 6):

  • 先添加微软官方软件源:
wget https://packages.microsoft.com/config/debian/bullseye/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
  • 安装.NET 6运行时:
sudo apt update && sudo apt install -y dotnet-runtime-6.0

验证安装成功:

dotnet --version

3. 重新构建适配树莓派的机器人项目

回到你的开发笔记本,打开Discord.Net项目:

  • 先确认项目的目标框架是.NET 6(或更高LTS版本),可以在项目文件(.csproj)里查看/修改:
<PropertyGroup>
  <TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
  • 针对树莓派的ARMv7架构发布项目:
dotnet publish -c Release -r linux-arm --self-contained false

参数说明:

  • -c Release:发布性能更优的Release版本
  • -r linux-arm:指定目标运行环境为Linux ARMv7(完美适配树莓派3B)
  • --self-contained false:不打包.NET运行时,因为我们已经在树莓派上单独安装了,能节省大量空间

4. 部署到树莓派并运行

  • 把发布目录(bin/Release/net6.0/linux-arm/publish)里的所有文件,上传或克隆到树莓派的某个目录(比如~/discord-bot)
  • 给可执行文件赋予权限:
chmod +x ./YourBotName
  • 启动机器人:
./YourBotName

额外优化:让机器人后台持续运行

如果不想一直开着SSH窗口,可以用systemd创建后台服务:

  1. 创建服务配置文件:
sudo nano /etc/systemd/system/discord-bot.service
  1. 填入以下内容(记得替换路径和用户名):
[Unit]
Description=Discord Bot Service
After=network.target

[Service]
User=pi
WorkingDirectory=/home/pi/discord-bot
ExecStart=/home/pi/discord-bot/YourBotName
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
  1. 启用并启动服务:
sudo systemctl enable discord-bot
sudo systemctl start discord-bot
  1. 查看运行日志:
sudo journalctl -u discord-bot -f

内容的提问来源于stack exchange,提问作者Noahpls

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:50:00