最近因為要佈署一些 基於 .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
執行結果: