在树莓派4上安装 .NET Core 3.0 运行时及 SDK

点击上方蓝字关注“汪宇杰博客”

640?wx_fmt=png

导语

我最近买了个树莓派4,4GB内存高富帅配置,并安装了官方操作系统Raspbian。今天我成功运行了一个ASP.NET Core 3.0 应用程序。我们来看看怎么弄的吧~

ARM32 还是 ARM64?

需要说明的是,目前无法在树莓派 4 上运行 ARM64 版本的 .NET Core 运行时或 SDK。虽然树莓派4的CPU支持64位,但其官方操作系统Raspbian不是64位的。其他第三方操作系统也尚未更新以支持树莓派4。所以,如果你想在树莓派4上跑 .NET Core 3.0 ,唯一的选择是 ARM32。

准备

必需:互联网连接,用于下载 .NET Core 3.0 运行时及SDK

可选:VS / VSCode 用于开发样例工程

更新 Raspbian 系统

sudo apt-get update

sudo apt-get upgrade

建议为你的树莓派准备个显示器或 VNC 连接,以便可以在最后一步测试你的 ASP.NET Core 网站,而无需纠结端口和网络设置。

下载 .NET Core 3.0 SDK 及运行时

在你的电脑上打开 https://dotnet.microsoft.com/download/dotnet-core/3.0 找到 Linux 底下的 ARM32 版本的 SDK 及 Runtime,点开,页面上会显示一个 Direct Link。这两个链接就是我们在 Raspbian 上要用来下载最新版 SDK 及运行时的链接。

目前,这两个链接是:

.NET Core 3.0 SDK (Linux/ARM32)

https://download.visualstudio.microsoft.com/download/pr/8ddb8193-f88c-4c4b-82a3-39fcced27e91/b8e0b9bf4cf77dff09ff86cc1a73960b/dotnet-sdk-3.0.100-linux-arm.tar.gz

ASP.NET Core 3.0 Runtime (Linux/ARM32)

https://download.visualstudio.microsoft.com/download/pr/e9d4b012-a877-443c-8344-72ef910c86dd/b5e729b532d7b3b5488c97764bd0fb8e/aspnetcore-runtime-3.0.0-linux-arm.tar.gz

到树莓派上使用 wget 下载这两个文件

wget https://download.visualstudio.microsoft.com/download/pr/8ddb8193-f88c-4c4b-82a3-39fcced27e91/b8e0b9bf4cf77dff09ff86cc1a73960b/dotnet-sdk-3.0.100-linux-arm.tar.gz 

wget https://download.visualstudio.microsoft.com/download/pr/e9d4b012-a877-443c-8344-72ef910c86dd/b5e729b532d7b3b5488c97764bd0fb8e/aspnetcore-runtime-3.0.0-linux-arm.tar.gz

安装 .NET Core 3.0 SDK 及运行时

创建一个新目录,如 dotnet-arm32,将刚才下载好的文件解压进去。

mkdir dotnet-arm32

tar zxf aspnetcore-runtime-3.0.0-linux-arm.tar.gz -C $HOME/dotnet

tar zxf dotnet-sdk-3.0.100-linux-arm.tar.gz -C $HOME/dotnet

目前为止,你只能在 dotnet-arm32 里执行.NET命令。要让 dotnet 命令在任何位置都能跑,需要创建一个环境变量连接指向 dotnet-arm32 文件夹。

export DOTNET_ROOT=$HOME/dotnet-arm32

export PATH=$PATH:$HOME/dotnet-arm32

现在你可以运行 dotnet --info 试一下:

640?wx_fmt=png

在Raspbian里创建.NET Core程序

现在,我们已经有了 SDK,我们不必使用另一台计算机来开发和发布应用程序。我们可以直接在树莓派上搞。

mkdir hello-netcore3

cd hello-netcore3/ 

dotnet new console

工程创建完成,NuGet 还原完成后,即可用 dotnet run 命令执行程序。

640?wx_fmt=png

甚至你也可以凑合着用 nano 作为编辑器

sudo nano Program.cs

640?wx_fmt=png

部署和运行 ASP.NET Core 网站

在更真实的场景中。如果没有 Raspbain 上的 IDE,您就无法开发复杂的 .NET Core 应用程序。我们通常先在电脑上开发和测试我们的应用程序,然后发布到树莓派来运行。

要运行 ASP.NET Core 应用程序,首先需要发布它。例如,从 Visual Studio 2019 中,我有一个空 ASP.NET Core 应用程序,改了点Startup.cs 输出更多信息。

await context.Response.WriteAsync($"Empower every person and every organization on the planet to achieve more{Environment.NewLine}" + $".NET Core {Environment.Version}{Environment.NewLine}" + $"Environment.OSVersion: {Environment.OSVersion}{Environment.NewLine}" + $"Environment.Is64BitOperatingSystem: {Environment.Is64BitOperatingSystem}{Environment.NewLine}" + $"Environment.Is64BitProcess: {Environment.Is64BitProcess}", Encoding.UTF8);

使用 FDD + Portable 发布。因为我们树莓派上已经安装了原生运行时,因此根本无需使用 linux-arm 这个RID来发布。Portable即可运行。

640?wx_fmt=png

把发布后的目录拷到树莓派上

640?wx_fmt=png

现在,即可用 dotnet dll名称.dll 来跑你的 ASP.NET Core 网站

640?wx_fmt=png
640?wx_fmt=png

640?wx_fmt=jpeg

想要 Docker?

Docker Hub 上可以下载到微软官方的 .NET Core 3.0 ARM32 版运行时及SDK,如果你像我一样在树莓派上安装了docker,可以直接 docker run 欢乐多:

640?wx_fmt=png
640?wx_fmt=gif

参考文档:https://www.hanselman.com/blog/InstallingTheNETCore2xSDKOnARaspberryPiAndBlinkingAnLEDWithSystemDeviceGpio.aspx

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/313569.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET生成漂亮桌面背景

前言一天,我朋友指着某某付费软件对我说,这个东西不错,每天生成一张桌面背景,还能学英语(放置名人名言和翻译)!我说,这东西搞不好我也能做,然后朋友说,“如果…

Mysql 执行流程

mysql执行一个查询的过程,到底做了些什么: 客户端发送一条查询给服务器;服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段。服务器段进行SQL解析、预处理,在优化器生成…

Autofac的AOP面向切面编程研究

我的理解是 把系统性的编程工作封装起来 》我给这个取个名字叫 “Aspect”,然后通过AOP技术把它切进我们的业务逻辑代码 》 “业务“这样的好处:“Aspect” 和 “业务” 相互独立,既可以让“业务” 用到了 “Aspect” 又让2者互相独立不耦合&…

计算机网络原理梳理丨清晰认识 TCP/IP 协议,图解秒懂!

作者:MobMsg,资深全端工程师一枚,架构师社区合伙人!TCP/IP 协议族Internet 的核心协议就是 TCP/IP,广泛应用于局域网和广域网,目前已有20年发展史,是现用国际通行标准。TCP/IP 是个协议族&#…

MySQL 覆盖索引、最左前缀原则、索引下推

1、覆盖索引 1.1 概念 索引是高效找到行的一个方法,当能通过检索索引就可以读取想要的数据,那就不需要再到数据表中读取行了。如果一个索引包含了(或覆盖了)满足查询语句中字段与条件的数据就叫做覆盖索引。 1.2 判断标准 使用…

Entity Framework Core生成的存储过程在MySQL中需要进行处理及PMC中的常用命令

在使用Entity Framework Core生成MySQL数据库脚本,对于生成的存储过程,在执行的过程中出现错误,需要在存储过程前面添加delimiter //附:可以使用Visual Studio中的程序包管理器控制台执行Entity Framework Core中的迁移命令。PMC …

Exceptionless 5.0.0本地Docker快速部署介绍

在之前我有专门写两篇文章介绍过Exceptionless这款开源日志项目的使用和部署,但是当时是基于4.1.0版本(2017年的release),时隔两年多Exceptionless也推出了5.0.0版本。(1)(2)01—关于…

数据库事务及隔离级别

一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态…

定了!10 月 8 日!Jupyter Notebook 原生支持将正式来到 VS Code!

北京时间 2019 年 9 月 21 日,在 PyCon China 2019 大会上,前不久,我们已经可以尽管如此,还是有许多童鞋来询问这个功能何时能正式发布。现在,我们可以在 VS Code Python 插件的 Release Plan 看到正式的发布时间已经确…

图解MySQL 内连接、左连接、右连接

一、准备工作 用两个表(a_table、b_table),关联字段a_table.a_id和b_table.b_id来演示一下MySQL的内连接、外连接( 左(外)连接、右(外)连接、全(外)连接)。 MySQL版本:Server version: 5.6.31 MySQL Comm…

微软想将新版Edge浏览器引入Linux

继推出 WSL2、将 exFAT 技术添加至 Linux 内核,和宣布第一届微软 Linux 大会后,微软再次瞄准了 Linux。这次 Linux 用户将很可能迎来新版 Edge 浏览器。微软网络技术程序经理 Sean Larson 在 Twitter 上发布了一条消息,表示 Edge 开发团队正在…

一套代码同时支持.NET Framework和.NET Core

在.NET Core的迁移过程中,我们将原有的.NET Framework代码迁移到.NET Core。如果线上只有一个小型的应用还好,迁移升级完成后,只需要维护.NET Core这个版本的代码。但是,如果是一个大型分布式应用,几百台Server&#x…

从壹开始 [Admin] 之五 ║ 实现『按钮』级别权限配置

正文一、前情回顾哈喽大家好,在这个欢庆的日子里,老张祝大家工作都能蒸蒸日上!今天正好也是社团成立的第一天,我也是希望今天能是个纪念日,沾沾这个大喜庆!放假这两天,倒是学到了很多东西&#…

MySQL——binlog,redo log

一、什么是binlog、redo log binlog属于逻辑日志,是逻辑操作。innodb redo属于物理日志,是物理变更。逻辑日志有个缺点是难以并行,而物理日志可以比较好的并行操作。 binlog是MySQL Server层记录的日志, redo log是InnoDB存储引…

“自启动”树莓派上的 .NET Core 3.0 环境

点击上方蓝字关注“汪宇杰博客”导语昨天发了一篇《自动配置环境变量Rapbian 系统启动时会去执行 .profile 文件里的命令。因此我们只需要把配置环境变量的命令加入 .profile 文件即可。在 Linux 中,.profile 扩展用于终端程序中的文件。Linux 和 Mac OS X 终端程序…

Nginx 配置内网访问树莓派4 ASP.NET Core 3.0 网站

喜迎国庆点击上方蓝字关注“汪宇杰博客”导语前几天发了两篇《能跑就行:Kestrel Hosting如果你的要求只是临时内网访问,可以只用 Kestrel 来承载 Web 服务器,只需要给 dotnet 命令一个 --urls 参数即可设置允许访问的主机名和端口号。我不希望…

常见的NoSQL数据库

NoSQL数据库发展迅猛,据说现在已经有上百种NoSQL数据库了,下面来了解下常见的一些NoSQL数据库 先来看张表,了解下典型的NoSQL数据库的分类 NoSQL一般特征: 临时性键值存储一般作为关系型数据库的缓存来使用由于存在数据丢失的可…

2019年9月中国编程语言排行榜,C#排第三

前两天,在 GitHub 上看到一份报告,上面统计了全国程编程语言排行榜 9 月份的情况,下面跟大家分享一下,这份报告里面都说了什么。https://github.com/juwikuang/china_job_survey/blob/master/notebook/201909/programming_languag…

从0开始编写dapper核心功能、压榨性能、自己动手丰衣足食

我偶然听说sqlsugar的性能比dapper强。对此我表示怀疑(由于我一直使用的dapper存在偏见吧),于是自己测试了sqlsugar、freesql、dapper发现他们的给我的结果是sqlsugar>dapper>freesql(这里并不是黑那个orm,毕竟不同orm功能不…

免费下载 80多种的微软推出入门级 .NET视频

.NET Core 3.0视频系列中宣布了80多个新的免费视频,这些视频同时放在Microsoft的Channel 9 和youtube上面。 在线观看由于跨洋网络效果不太好,下载到机器上慢慢看是最好的了。 所以Scott Hanselman 特别制作了一个页面 http://dot.net/videos。我把这个页…