正如标题所说,我正在制作一个用C#编写的discord bot,我最近得到了一个树莓派,想知道我是否可以在其上安装Linux,然后在它上面运行bot,即使它是用c#编写的?
答案 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)与我或我的朋友联系,或对此答案发表评论。