使用Visual|使用Visual Studio 2019将ASP.NET Core发布为linux-arm64程序
前言
前段时间入手了一台树莓派4B,一直闲置未使用,最近工作需要,要在上面跑下.NET Core程序,由于树莓派4B使用的是ARM架构,并且支持64位操作系统,为了充分发挥树莓派性能,我的这台树莓派安装了官方最新的64位树莓派系统,在使用vs2019发布ASP.NET Core程序时,发现目标运行时中没有linux-arm64选项
文章图片
之前看到网上说64位系统可以跑32位程序,于是直接将目标运行时`linux-arm`选中进行发布,将发布后程序部署到树莓派运行
文章图片
可以看出,程序报应用程序格式错误,说明这种方式在树莓派不行,必须要生成64的应用程序才能运行。
生成ARM64位程序
去官网查看(https://docs.microsoft.com/zh-cn/dotnet/core/rid-catalog#linux-rids),发现是支持linux-arm64运行时的,可以通过dotnet命令进行发布,在项目根目录(.csproj所在目录)下启动命令行工具
dotnet publish -c Release -r linux-arm64
对于用惯了Visual Studio的人来说,每次发布时都要去敲命令比较麻烦,有没有办法实现在vs2019发布linux-arm64程序呢,我又去官网找了下,在这里(https://docs.microsoft.com/zh-cn/dotnet/core/deploying/deploy-with-vs?tabs=vs156#self-contained-deployment-without-third-party-dependencies)找到了解决办法。
打开项目文件,我这里为
DotNetCorePubLinuxArm64.csproj
,添加linux-arm64
linux-arm64 netcoreapp3.1
【使用Visual|使用Visual Studio 2019将ASP.NET Core发布为linux-arm64程序】
文章图片
在vs中重新发布应用程序,可以看到此时发布窗口中目标运行时选项框已经有了linux-arm64选项,选中后发布程序,并在树莓派中运行
文章图片
可以看到此时程序已经正常运行,问题解决。
如果你手上刚好也有一台树莓派,想要亲自动手试试,代码地址:
gitee:https://gitee.com/gyhgis/DotNetCorePubLinuxArm64
github:https://github.com/gyhgis/DotNetCorePubLinuxArm64
推荐阅读
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- iOS中的Block
- Linux下面如何查看tomcat已经使用多少线程
- 使用composer自动加载类文件
- android|android studio中ndk的使用
- 使用协程爬取网页,计算网页数据大小