.NET 5.0 已經正式發布,從 ASP.NET 3.1 升級至 .NET 5.0 可稱無痛升級。
但將專案升級並重新發布過程中還是遇到了一點小麻煩,就讓我們繼續看下去~
安裝 SDK 與調整專案
- 安裝 .NET 5.0 SDK 。
使用 Visual Studio 2019 的話,需要升級至 16.8 (含以上),才能使用 (此升級已包含 SDK 不需要另外安裝)。
2. 修改專案目標 framework:
移除:
<TargetFramework>netcoreapp3.1</TargetFramework>
新增:
<TargetFramework>net5.0</TargetFramework>
3. 重新編譯專案
大致上.NET 5.0與.NET Core 3.1支援的平臺幾乎相同,所以應該沒有問題。
發布至 Azure Web App
新版專案發布設定應該是像以下這樣:
發布時會出現提示訊息:
(鐵齒)不修正直接發布,雖然可以成功發布,站台會顯示以下錯誤訊息:
顯示站台上沒有 .NET 5.0 (提示訊息還是很重要的....
所以要調整發布類型為:獨立發行(self-contained)。
MSDN 上對 "獨立發行" 的說明:
會產生平臺特定的可執行檔。 輸出發行資料夾包含應用程式的所有元件,包括 .NET Core 程式庫和目標執行時間。
應用程式的使用者不需要下載和安裝 .NET Core。
調整後,就可以成功發布囉!!
Web App 啟動錯誤:Startup assembly Microsoft.AspNetCore.AzureAppServices.HostingStartup failed to execute
美中不足的是,Web App 啟動時會出現以下錯誤訊息:
Microsoft.AspNetCore.AzureAppServices.HostingStartup 用來提供 ASP.NET Core 整合至 Web App 功能,此套件不包含在 .NET 5.0 中,並且剛剛選擇發布獨立發行檔,不會使用到站台環境,因此需要額外安裝。
回到 VS2019,在套件管理員主控台中輸入以下指令:
Install-Package Microsoft.AspNetCore.AzureAppServices.HostingStartup -Version 5.0.0
重新發布就完成囉!
如果有使用到 Azure App Servic 診斷記錄的話,還要安裝以下兩個套件:
Install-Package Microsoft.AspNetCore.AzureAppServicesIntegration -Version 5.0.0
Install-Package Microsoft.Extensions.Logging.AzureAppServices -Version 5.0.0
[11/26 補充] Web App 已經開放 .NET 5 (Early Access) 選項:
非正式 release,因此尚不支援 Application Insight、無法從 Visual Studio 建立 .Net 5 Web App。
官方努力改善中,待稍後好消息!