[HowTo] ASP.NET Core 3.1 Web App 升級 .NET 5.0 (含修正Web App 啟動錯誤)

阿蘇卡
4 min readNov 23, 2020

--

.NET 5.0 已經正式發布,從 ASP.NET 3.1 升級至 .NET 5.0 可稱無痛升級。

但將專案升級並重新發布過程中還是遇到了一點小麻煩,就讓我們繼續看下去~

安裝 SDK 與調整專案

  1. 安裝 .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。

官方努力改善中,待稍後好消息!

--

--

阿蘇卡
阿蘇卡

Written by 阿蘇卡

後端工程師。記錄下自己開發路上踩過的坑、研究過後的心得,希望對自己好,對其他工程師也好~

No responses yet