Pat*_*lph 5 arm embedded-linux .net-core asp.net-core
我想构建一个 ASP.NET Core Web API 服务以在带有基于埃的 linux的arm (cortex-A7) 设备上运行。
问题:最好的路线是什么?
我主要关心的是 angstrom 发行版,dotnet core 不支持开箱即用的发行版。欢迎任何建议!
编辑,开放问题:
您可以使用linux-arm.NET Core的可移植运行时构建。在您的构建机器上,确保dotnet --version返回2.0、预览或更高版本(在撰写本文时:)2.0.0-preview1-005977。
dotnet new mvcdotnet restore -r linux-armdotnet publish -r linux-arm /p:MvcRazorCompileOnPublish=falsebin/Debug/netcoreapp2.0/linux-arm/publish到您的目标机器并运行./nameOfTheProject由于您可能还想在本地进行开发,因此您需要.csproj像这样 ( <PropertyGroup>)编辑项目 ( ) 文件:
<RuntimeIdentifiers>linux-arm</RuntimeIdentifiers>
<MvcRazorCompileOnPublish Condition=" '$(RuntimeIdentifier)' != 'linux-arm' ">true</MvcRazorCompileOnPublish>
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以同时使用dotnet restore,dotnet run并且dotnet publish在开发或其他部署期间无需额外参数,并且在准备部署到 arm 时,仅使用:
dotnet publish -c Release -r linux-arm
Run Code Online (Sandbox Code Playgroud)
并使用生成的二进制文件bin/Release/netcoreapp2.0/linux-arm/publish(或传递一个额外的-o ../publish-output参数)
首先,忘记埃。您将不会从该发行版或其包管理器获得任何本机依赖项。您也找不到任何有关埃的有用资源。
相反,使用yocto构建您自己的OpenEmbedded Core linux 发行版,并在构建过程中添加本机依赖项。在撰写本文时,这可以通过Tragetaschen 的元aspnet 层进行管理。声明单声道是一项要求,但这是不正确的(现在了吗?)。readme.md
一旦 Arm 系统上提供了本机依赖项(libunwind、libicu 等),您可以Linux (armhf) (for glibc based OS)从https://github.com/dotnet/core-setup下载最新版本,将其解压到/opt/dotnet/,并通过以下方式创建符号链接ln -s /opt/dotnet/dotnet /usr/bin/。这是OP的第1号解决方案,通用字节码项目(只是dotnet publish)可以正常工作。
如果您不喜欢在目标计算机上安装 dotnet,您可以编译-r linux-arm(Martin Ulrich 的建议),这会生成一个巨大的发布文件夹,其中包括 coreclr 和 corefx。但是,在目标计算机上安装 dotnet 是所有问题中最小的,并且将应用程序与 dotnet coreclr/fx/host 分离更干净(恕我直言)。
关键问题是
该meta-aspnet层似乎解决了这两个问题(在撰写本文时)。您必须深入研究它以获取更多详细信息,或者按原样使用它。
| 归档时间: |
|
| 查看次数: |
6321 次 |
| 最近记录: |