c# - 在Linux上运行用C#编写的raspberry pi discord bot?

标签 c# linux raspberry-pi raspberry-pi3 discord

正如标题所说,我正在制作一个用C#编写的不和谐机器人,最近我买了一个树莓派,想知道我是否可以在上面安装Linux,然后在上面运行这个机器人,即使它是用C#编写的?

最佳答案

我意识到我的回答晚了一年多,但由于这是谷歌的第一个结果,我想在这里写一个快速指南会有帮助。
这将在运行Raspbian的Raspberry Pi上运行.NET Core Discord Bot应用程序。
我也非常感谢我的朋友ComputerNerd100#2917(Discord)教我如何做到这一点。
而且,这是在假设您没有可用于您的Pi的监视器的情况下(像我一样)。
首先,发布你的.NET Core应用程序在ARM上运行。使用WIN+X然后C打开命令提示符。类型
cd <Path to project>
这应该是包含.sln Visual Studio文件的文件夹的路径。不要在命令中包含.sln文件。
接下来,运行dotnet publish -r linux-arm,这可能需要一段时间,但最终应该输出已编译到的目录。把这个目录记下来,因为你以后会需要它的。
现在,你需要在你的Windows机器上安装PuTTY。这是一个工具,我们将使用暂时连接到树莓皮。下载here
要使PuTTY工作,请将SD卡从树莓Pi中取出并放入计算机。在引导驱动器中,创建一个没有扩展名的名为“ssh”的文件。它必须在驱动器的根目录中。
现在把SD卡放回圆周率并打开它。确保它已连接到internet。
安装PuTTY后,运行该程序,将出现一个“主机名(或IP地址)”框。通过查看路由器的设置页面,或者如果有监视器,通过在Pi的命令行界面上运行ifconfig来查找Raspberry Pi的IP。在框中输入此IP地址,并确保选择了连接类型“SSH”。单击“打开”或按enter键。
将出现一个控制台窗口,提示您登录。使用您在Pi上设置的凭据。如果您没有更改这些,则默认用户名为pi,密码为raspberry
接下来,按以下顺序在PuTTY中运行以下命令以安装.net:
sudo apt-get -y update
sudo apt-get -y install libunwind8 gettext
wget https://dotnetcli.blob.core.windows.net/dotnet/Sdk/2.1.300-rc1-008673/dotnet-sdk-2.1.300-rc1-008673-linux-arm.tar.gz
wget https://dotnetcli.blob.core.windows.net/dotnet/aspnetcore/Runtime/2.1.0-rc1-final/aspnetcore-runtime-2.1.0-rc1-final-linux-arm.tar.gz
sudo mkdir /opt/dotnet
sudo tar -xvf dotnet-sdk-2.1.300-rc1-008673-linux-arm.tar.gz -C /opt/dotnet/
sudo tar -xvf aspnetcore-runtime-2.1.0-rc1-final-linux-arm.tar.gz -C /opt/dotnet/
sudo ln -s /opt/dotnet/dotnet /usr/local/bin
要确保这些都有效,请运行dotnet --info。你应该得到很多关于.NET核心安装的信息。
现在您必须下载一个工具来将文件从计算机上的目录移动到Pi。
下载pscp.exehere。请注意您已将其下载到的位置。
再次打开命令提示符,并键入cd <Location of pscp.exe>,命令中不包括pscp.exe本身。
现在,在命令提示符下运行此命令,将编译的文件移动到Pi。
PSCP -r "<Path to linux-arm folder>" pi@<Pi's IP Address>:/home/pi/
确保"存在,否则如果文件路径中有空格,程序将变得混乱。
现在,在PuTTY中,导航到要运行的文件所在的位置。这是一个与解决方案(.sln)同名的文件,应该位于linux-arm/publish/中。在油灰中使用cd <path to file>。(不要在命令中包含文件本身)。如果您想查看当前所在目录中的所有文件和文件夹,请使用ls -la
要准备要运行的程序,请在PuTTY中运行此程序:chmod 777 ./"<File Name>"
最后,程序可以运行。使用./"<File Name>"运行它。只有当PuTTY窗口打开时,这个程序才会运行,但是现在测试它是很好的,并且能够满足所有付出的努力。
要使程序在PuTTY窗口关闭时继续运行,必须安装更多的东西。(使用CTRL+C关闭当前正在运行的程序)在PuTTY中运行sudo apt-get install screen,然后运行以下命令启动bot:
screen -dmS discordbot "/home/pi/linux-arm/publish/<File Name>"
机器人现在应该在不打开油灰窗的情况下运行。
当Pi插入时,让机器人自动运行会很好,我和我的朋友目前正在研究这个问题。当我们找到答案时,我会更新我的答案。
希望这有帮助!如果您在遵循这些说明时有任何问题,请联系我或我的不和谐朋友(230Daniel 1920或ComputerNerd100 2917)或对此答案发表评论。

关于c# - 在Linux上运行用C#编写的raspberry pi discord bot?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43684043/

相关文章:

C:小端

c# - 当我引发事件时,它始终为null

c# - new Bitmap() 抛出随机的、不可追踪的异常

c - 如何取消任何先前的名称定义,在 gcc 中内置或提供 ‘-D’ 选项

linux - 抑制来自 PyCharm 的烦人的终端输出垃圾

python - 从树莓派上的 ADC 芯片读取原始音频值

bluetooth - 使用 RSSI 计算近似距离

c# - Foreach 找不到嵌套类

c# - 设计器 resx 文件仍然为空

linux - Windows 与 Linux 上的 MarkLogic 性能比较