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

问题描述 投票:0回答:2

正如标题所说,我正在制作一个用C#编写的discord bot,我最近得到了一个树莓派,想知道我是否可以在其上安装Linux,然后在它上面运行bot,即使它是用c#编写的?

c# linux raspberry-pi raspberry-pi3 discord
2个回答
0
投票

答案通常是肯定的(请查看下面的Mono发布链接)。标准功能可能不支持某些功能。我用过它,我知道它有效

http://www.mono-project.com/docs/getting-started/mono-basics/


0
投票

我意识到我迟到了一年多,但由于这是Google的第一个结果,我认为在这里写一个快速指南会很有帮助。

这将在运行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。这是我们用来暂时连接到Raspberry Pi的工具。下载它here

要使PuTTY正常工作,请将SD卡从Raspberry Pi中取出并放入计算机中。在BOOT驱动器中,创建一个名为“ssh”的文件,不带扩展名。它必须位于驱动器的根目录中。

现在将SD卡放回Pi中并打开它。确保它已连接到互联网。

安装PuTTY后,运行该程序,将出现“主机名(或IP地址)”框。通过查看路由器的设置页面查找Raspberry Pi的IP,或者,如果您有监视器,则通过在Pi的命令行界面上运行ifconfig来查找。在框中输入此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 Core安装的大量信息。

现在,您必须下载一个工具,将文件从计算机上的目录移动到Pi。下载pscp.exe here。记下您已将其下载到的位置。

再次打开命令提示符,并在命令中键入cd <Location of pscp.exe>,不包括pscp.exe本身。

现在,在命令提示符下运行此命令将已编译的文件移动到Pi。

PSCP -r "<Path to linux-arm folder>" pi@<Pi's IP Address>:/home/pi/

确保"s在那里,否则如果文件路径中有空格,程序将会混淆。

现在,在PuTTY中,导航到我们要运行的文件所在的位置。这将是一个与您的解决方案(.sln)同名的文件,应位于linux-arm/publish/中。在PuTTY中使用cd <path to file>。 (不要在命令中包含文件本身)。如果您想查看当前所在目录中的所有文件和文件夹,请使用ls -la

要准备要运行的程序,请在PuTTY:chmod 777 ./"<File Name>"中运行它

最后,程序可以运行。使用./"<File Name>"来运行它。这将仅在PuTTY窗口打开时运行程序,但现在测试它并且对所有努力工作的满意度都很满意。

要在PuTTY窗口关闭时继续运行程序,您必须安装更多东西。 (使用CTRL+C关闭当前正在运行的程序)在PuTTY中运行sudo apt-get install screen,然后运行以下命令启动机器人:

screen -dmS discordbot "/home/pi/linux-arm/publish/<File Name>"

机器人现在应该在没有打开PuTTY窗口的情况下运行。

当插入Pi时,让机器人自动运行会很好,我和我的朋友正在研究这个问题。当我们弄明白时,我会更新我的答案。

希望这可以帮助!如果您在遵循这些说明时遇到任何问题,请通过Discord(230Daniel#1920或ComputerNerd100#2917)与我或我的朋友联系或对此答案发表评论。

© www.soinside.com 2019 - 2024. All rights reserved.