.NET Core 3.0 发布 ARM64
Posted
技术标签:
【中文标题】.NET Core 3.0 发布 ARM64【英文标题】:.NET Core 3.0 Publish for ARM64 【发布时间】:2019-10-20 16:08:16 【问题描述】:有人知道如何为 ARM64 发布 .NET Core 3.0 应用程序吗? 我只能选择“linux-arm”,但不能选择“linux-arm64”。 结合 x64 设置 linux-arm 也不起作用。它说设置不兼容。
正如这里所说,它应该已经被支持:https://github.com/dotnet/core/blob/master/release-notes/3.0/3.0-supported-os.md
【问题讨论】:
你的 csproj 中有哪些平台和标识符?doesn't work
是什么意思?你尝试了什么?您在命令行或项目文件中使用了哪些运行时 ID?
链接指向支持的操作系统,而不是运行时标识符列表。该列表是here。
【参考方案1】:
链接的文章指向支持的操作系统,而不是运行时标识符列表。可以在.NET Core RID Catalog 中找到 RID 的说明和常用的列表。 完整列表可在 CoreFX 存储库中找到,地址为 runtime.json。 linux-arm64
包含在内,但这只是 base 操作系统。有很多特定的标识符,如"debian-arm64"
、"debian.10-arm64"
、"rhel-arm64"
和"ubuntu-arm64"
。您必须使用与您的发行版相对应的 RID。
正如 RID 目录所解释的,运行时标识符由操作系统、操作系统版本、体系结构和可选的额外限定符组成。
[os].[version]-[architecture]-[additional qualifiers]
ubuntu-arm64
是 ARM64 的通用 Ubuntu 版本,而ubuntu.19.04-arm64
专门针对 Ubuntu 19.04。
Raspbian 没有特定的版本。如果您想总体上以 Raspberry 为目标,则必须使用 linux-arm
。如果您想利用 4GB RAM 模型,假设您已经使用 64 位操作系统,您可能可以定位 linux-arm64
。
【讨论】:
【参考方案2】:发布配置文件设置中无法使用 linux-arm64,但如果您使用 linux-arm 构建它并在之后手动编辑您的 .pubxml
文件,它可以在 pi 上正常工作。正如您提供的链接所示,它是受支持的。似乎还没有添加到工具中。
照常发布,然后编辑.pubxml
改变
<RuntimeIdentifier>linux-arm</RuntimeIdentifier>
到
<RuntimeIdentifier>linux-arm64</RuntimeIdentifier>
然后您可以在 64 位树莓派上发布。
【讨论】:
以上是关于.NET Core 3.0 发布 ARM64的主要内容,如果未能解决你的问题,请参考以下文章