前言
前段時間入手了一臺樹莓派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,添加<RuntimeIdentifiers>linux-arm64</RuntimeIdentifiers>
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <!-- 這里添加運行時環境 --> <RuntimeIdentifiers>linux-arm64</RuntimeIdentifiers> <TargetFramework>netcoreapp3.1</TargetFramework> </PropertyGroup> </Project>

在vs中重新發布應用程式,可以看到此時發布視窗中目標運行時選項框已經有了linux-arm64選項,選中后發布程式,并在樹莓派中運行

可以看到此時程式已經正常運行,問題解決,
如果你手上剛好也有一臺樹莓派,想要親自動手試試,代碼地址:
gitee:https://gitee.com/gyhgis/DotNetCorePubLinuxArm64
github:https://github.com/gyhgis/DotNetCorePubLinuxArm64
微信掃描二維碼關注我的公眾號“GIS學習班”
本文作者:GIS學習班
本文鏈接:https://www.cnblogs.com/gyhgis/p/15513092.html
著作權宣告:本文來自博客園,轉載請注明原文鏈接
支持博主:如果本文恰好可以幫到您,可以【推薦】一下,也可以打賞鼓勵博主
打賞支持轉載請註明出處,本文鏈接:https://www.uj5u.com/net/353080.html
標籤:.NET技术
上一篇:官宣 .NET RC 2
下一篇:[WPF] 玩玩彩虹文字及影片
