[.Net8]從AOT到dotnet publish:在Raspberry Pi 3上成功運行.NET 8 Web API的步驟

2024-01-18

最近因為要佈署一些 基於 .Net8 的Web API 到 Raspberry Pi 3  上面跑,因為 .Net 8 AOT 無法在上面執行

所以還是得安裝 dotnet 8 runtime ,因為我不死心我直接把程式碼放上去編譯,我原本是在 x64 電腦編譯後放過去

結果無法執行起來即使我 chmod+x 也沒用,但是放上去 透過 dotnet publish 後發現


出現錯誤:

opt/dotnet/sdk/8.0.101/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error NETSDK1204: 目前的平台 'linux-arm' 不支援提前編譯。

[/home/pi/Desktop/PROJ2/WebApplication1.csproj]


主要就是因為在目前在 arm32 上面 看來似乎是不能用最後還是得透過 dotnet 來執行,因為我的 VS 2002 在 Release 的時候

都會失敗,所以基本上我都是透過在  command 去下指令,所以我就把程式碼直接放到 Raspberry Pi 3 下面進行發佈

這時候就必須要把 AOT 取消 ,編輯 專案檔的  PublishAot 改成 false 



我希望他發佈到該目錄下的 Publish0118

指令:
 

dotnet publish -o:Publish0118



之後我們修改一下  appsettings.json 



不然他預設會是 locolhost:5000 ,而且外部也找不到所以我直接指定他的 IP 

執行指令:


dotnet ProjectName.dll



執行結果:





當麻許的超技八 2014 | Donma Hsu Design.