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

时间:2017-04-28 15:39:39

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

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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地址)”框。通过在路由器的设置页面上查看,或在有监视器的情况下,通过在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 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/

确保"在那里,因为如果文件路径中有空格,程序将变得混乱。

现在,在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)与我或我的朋友联系,或对此答案发表评论。