欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【.NET Core】在树莓派Raspberry Pi 3b+上运行.net core 2.1程序

程序员文章站 2022-07-09 17:16:37
...

前言

最近想做个私有NAS,所以入手了一块树莓派 3b+,刷了openmediavault系统。系统是基于linux的,然后寻思着看树莓派能不能运行下.netcore程序。经过一阵搜索,发现其实步骤还是挺简单的。

总结下就是:

  1. 在你的树莓派上安装linux系统。现在支持arm32的linux系统我知道的有Debian和Ubuntu。openmediavalut和树莓派官方的Raspbian都是基于Debian的。
  2. 安装.netcore在对应系统上的一些依赖。
  3. publish你的程序到对应的平台(linux-arm),然后拷贝到树莓派上。

实现

1. 在树莓派上安装linux系统

因为之前已经安装过openmediavault了,所以跳过。如果想安装的话,可以点击下载
【.NET Core】在树莓派Raspberry Pi 3b+上运行.net core 2.1程序
安装的话,就按照页面下方的文字说明进行安装即可。亦可自行百度。

2.安装相关依赖

.netcore开发团队已经给我们写了详细的安装依赖步骤:
【.NET Core】在树莓派Raspberry Pi 3b+上运行.net core 2.1程序
反正都是基于debian的系统,我就选择了上图的两个命令。其它系统的相关依赖详见:依赖

Ubuntu
Ubuntu distributions require the following libraries installed:
liblttng-ust0
libcurl3
libssl1.0.0
libkrb5-3
zlib1g
libicu52 (for 14.x)
libicu55 (for 16.x)
libicu57 (for 17.x)
libicu60 (for 18.x)
For versions earlier than .NET Core 2.1, following dependencies are also required:
libunwind8
libuuid1
CentOS
CentOS distributions require the following libraries installed:
lttng-ust
libcurl
openssl-libs
krb5-libs
libicu
zlib
For versions earlier than .NET Core 2.1, following dependencies are also required:
libunwind
libuuid
For more information about the dependencies, see Self-contained Linux applications.

3.编写.NET Core程序

这里我用VS2017写了一个core 2.1的控制台应用ConsolePi,很简单没什么功能,就是输出一句话。

class Program
{
   static void Main(string[] args)
   {
        Console.WriteLine("Hello from pi!");
        Console.Read();
   }
}

4.发布、上传并执行

cmd或者powershell到你csproj文件所在的目录,输入以下命令:

dotnet publish -r linux-arm

将其发布到linux-arm平台。这是发布后的路径和一些文件(183个):
【.NET Core】在树莓派Raspberry Pi 3b+上运行.net core 2.1程序
打开XShell,连接上树莓派(需要先把ssh打开):
【.NET Core】在树莓派Raspberry Pi 3b+上运行.net core 2.1程序
然后输入以下命令在当前目录新建一个publish文件夹:

mkdir publish

【.NET Core】在树莓派Raspberry Pi 3b+上运行.net core 2.1程序
打开XShell的ftp工具:
【.NET Core】在树莓派Raspberry Pi 3b+上运行.net core 2.1程序
把之前发布好的那一百多个文件,拖到右边的publish文件夹里:
【.NET Core】在树莓派Raspberry Pi 3b+上运行.net core 2.1程序
等待上传完成后,在xshell里cd到publish目录,然后执行chmod 777 ConsolePi命令,赋予ConsolePi文件相应的权限。然后输入./ConsolePi命令,不出意外,你应该能够看到Hello from pi了。
【.NET Core】在树莓派Raspberry Pi 3b+上运行.net core 2.1程序

5. 下一步工作

等接下来的装备到齐了,在试着调用下树莓派的GPIO。


参考

1 .NET Core on Raspberry Pi
2. Prerequisites for .NET Core on Linux
3. 树莓派3中运行Netcore2.0程序
4. Running a .NET Core 2 app on Raspbian Jessie, and deploying to the Pi with Cake