使用Visual Studio 2019將ASP.NET Core釋出為linux-arm64程式

GIS學習班發表於2021-11-05

前言

前段時間入手了一臺樹莓派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

 

相關文章