asp.net-core – 如何在基于arm的自定义linux上运行ASP.NET Core?

我想构建一个ASP.NET Core Web API服务,在基于 angstrom的Linux上运行 arm (cortex-A7) device.

问题:最佳路线是什么?

>为arm7设备编译CoreClr,CoreFx和什么不是(可能是possible,但我不确定angstrom linux).如果可行,则应在该设备上运行已发布的字节码.
>使用dotnet native和target arm交叉编译我的aspnet应用程序.我找不到有用的信息,但它可能是有可能的.
>还有别的吗?就像从我的项目中生成C代码一样?
>为设备编译不同的Linux发行版(可能不行,因为我们需要Linux Cortex-A7 cpu和FreeRTOS Cotex-M4 cpu间的IPC).

我主要担心的是angstrom发布,现在没有dotnet core支持.欢迎任何建议!

编辑,打开问题:

>我在哪里可以为Cortex-A7下载正确的预制dotnet二进制文件(我无法让https://github.com/dotnet/core-setup工作)?
>我还需要哪些其他先决条件(如果有的话)?

解决方法

您可以使用.NET Core的可移植linux-arm运行时版本.
在您的构建计算机上,确保dotnet –version返回2.0,预览版或更高版本(在撰写本文时:2.0.0-preview1-005977).

> dotnet new mvc
> dotnet restore -r linux-arm
> dotnet publish -r linux-arm / p:MvcRazorCompileOnPublish = false
>将bin / Debug / netcoreapp2.0 / linux-arm / publish的内容复制到目标计算机并使用./nameOfTheProject运行

既然您可能也希望在本地开发,那么您需要编辑这样的项目(.csproj)文件(< PropertyGroup>):

<RuntimeIdentifiers>linux-arm</RuntimeIdentifiers>
<MvcRazorCompileOnPublish Condition=" '$(RuntimeIdentifier)' != 'linux-arm' ">true</MvcRazorCompileOnPublish>

这样,您可以在开发期间使用dotnet还原,dotnet运行和dotnet发布,也可以在没有其他参数的情况下使用其他部署,并且在准备部署到arm时,只能使用:

dotnet publish -c Release -r linux-arm

并使用bin / Release / netcoreapp2.0 / linux-arm / publish中生成的二进制文件(或传递一个额外的-o ../publish-output参数)

相关文章

本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先从...
基于 .NET 的一个全新的、好用的 PHP SDK + Runtime: Pe...
.NET 异步工作原理介绍。
引子 .NET 6 开始初步引入 PGO。PGO 即 Profile Guided Opti...
前言 2021/4/8 .NET 6 Preview 3 发布,这个版本的改进大多来...
前言 开头防杠:.NET 的基础库、语言、运行时团队从来都是相...