【.NET Core】在树莓派Raspberry Pi 3b+上运行.net core 2.1程序
前言
最近想做个私有NAS,所以入手了一块树莓派 3b+,刷了openmediavault系统。系统是基于linux的,然后寻思着看树莓派能不能运行下.netcore程序。经过一阵搜索,发现其实步骤还是挺简单的。
总结下就是:
- 在你的树莓派上安装linux系统。现在支持arm32的linux系统我知道的有Debian和Ubuntu。openmediavalut和树莓派官方的Raspbian都是基于Debian的。
- 在树莓派上安装.netcore2.1的Runtime。
- 把你的控制台程序上传到树莓派上
实现
1. 在树莓派上安装linux系统
因为之前已经安装过openmediavault了,所以跳过。如果想安装的话,可以点击下载。
安装的话,就按照页面下方的文字说明进行安装即可。亦可自行百度。
2.安装.netcore runtime
这里推荐使用脚本安装, 可以自动安装对应架构对应系统的版本。按照微软团队给出的方法:
Scripting Installs with the .NET Core installer script
The dotnet-install scripts are used to perform a non-admin install of the CLI toolchain and the shared runtime. You can download the script from https://dot.net/v1/dotnet-install.sh.
首先, 输入以下命令,把sh文件下载下来:
wget https://dot.net/v1/dotnet-install.sh
如果你只想安装runtime并不想安装sdk的话,直接执行以下命令,默认是安装LTS版本:
./dotnet-install.sh --runtime dotnet
如果runtime和sdk要一并安装的话,输入以下命令(指定版本安装):
./dotnet-install.sh --channel 2.1
在这里我们输入以下命令安装最新版:(具体可用的参数有哪些,参考文末引用链接)
./dotnet-install.sh --channel Current
默认是安装到了当前目录的.dotnet
文件夹内,所以要把当前目录添加到环境变量, 输入以下命令开始编辑profile
sudo nano /etc/profile
在空白行位置,插入类似以下代码:export PATH="/hom/jim/.dotnet:$PATH"
然后输入
source /etc/profile
使新加入的环境变量生效。(可以直接输入env
查看系统环境变量)
此时输入dotnet --info应显示以下类似信息:
ubuntu@ubuntu:~/consoleapp$ dotnet --info
.NET Core SDK (reflecting any global.json):
Version: 2.2.100
Commit: 51868761f2
Runtime Environment:
OS Name: ubuntu
OS Version: 18.04
OS Platform: Linux
RID: ubuntu.18.04-arm64
Base Path: /home/ubuntu/.dotnet/sdk/2.2.100/
Host (useful for support):
Version: 2.2.0
Commit: 1249f08fed
.NET Core SDKs installed:
2.2.100 [/home/ubuntu/.dotnet/sdk]
.NET Core runtimes installed:
Microsoft.NETCore.App 2.1.6 [/home/ubuntu/.dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.0 [/home/ubuntu/.dotnet/shared/Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
注意:这里因为我是arm64版本的linux,微软的blob里并没有对应的aspnetcore的runtime,所以没法直接跑asp.net core程序
3.编写.NET Core控制台程序
这里我用VS2017写了一个core 2.1的控制台应用ConsoleApp1,很简单没什么功能,就是输出一句话。
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello world");
Console.Read();
}
}
4.发布、上传并执行
将项目下的bin/Debug目录下的所有内容通过xshell的xftp上传到树莓派上。
打开XShell,连接上树莓派(需要先把树莓派的ssh打开):
然后输入以下命令在当前目录新建一个publish文件夹:
打开XShell的ftp工具:
把Debug目录下是文件随便传到树莓派目录上,如ConsoleApp1。
等待上传完成后,在xshell里cd到publish目录,然后执行
chmod 755 ConsoleApp1
赋予ConsoleApp1文件相应的权限。
接下来就是看结果了:
ubuntu@ubuntu:~/consoleapp$ dotnet ConsoleApp1.dll
Hello World!
ubuntu@ubuntu:~/consoleapp$
5. 下一步工作
试着调用下树莓派的GPIO。
参考:【.NET Core】如何点亮树莓派Raspberry Pi 3b+上的一盏小灯
参考
1. Prerequisites for .NET Core on Linux
2. dotnet-install 脚本引用
更多推荐
所有评论(0)