使用Visual Studio 2019將ASP.NET Core發布為linux-arm64程序


前言

前段時間入手了一台樹莓派4B,一直閑置未使用,最近工作需要,要在上面跑下.NET Core程序,由於樹莓派4B使用的是ARM架構,並且支持64位操作系統,為了充分發揮樹莓派性能,我的這台樹莓派安裝了官方最新的64位樹莓派系統,在使用vs2019發布ASP.NET Core程序時,發現目標運行時中沒有linux-arm64選項

[本文作者:GIS學習班]  [本文鏈接:https://www.cnblogs.com/gyhgis/p/15513092.html]

之前看到網上說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>
        <!-- 作者:GIS學習班    這里添加運行時環境 -->
        <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

 

使用Visual Studio 2019將ASP.NET Core發布為linux-arm64程序 - GIS學習班 - 博客園 (cnblogs.com)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM