微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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参数)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐