asp.net core 從 3.1 到 5.0
Intro
就在前幾天,微軟宣布了 .NET5 發布了 RC1 版本,這也意味著 .NET5 的開發基本穩定了,正式發布之前,不會再新增新的 Feature,只會專注于修復 BUG 提高穩定性,
對于開發者來說,RC版本的發布也意味著功能的穩定,可以上手嘗嘗鮮了,正式版的 API 不會再發生變化了,即使后面遷移到正式版也會很簡單
于是嘗試著把我之前練手的一個小專案 asp.net core webapi 的專案從 3.1 遷移到了 5.0,意想不到的順利,要比 2.x 更新順利的多
專案目標框架更新
首先需要更新專案的 TargetFramework 從原來的 netcoreapp3.1 變更到 net5.0

包參考更新
原來參考的 3.1.x 版本的 nuget 包更新成 5.0 的包

這里有幾個不是 asp.net core 的包也順帶更新了
這里更新用的包版本我使用的不是具體的版本號,你也可以使用具體的版本號,都是可以的
Docker 鏡像更新
docker 鏡像的更新分為兩部分,一個是鏡像名稱,一個是鏡像 tag
鏡像 tag 比較好說,要從 3.1 更新成 5.0
鏡像名稱的變化是原來的鏡像名稱中有一個 core,在 net 5.0 中移除了,不再突出區分 core 了
具體的如下:
mcr.microsoft.com/dotnet/core/sdk => mcr.microsoft.com/dotnet/sdk
mcr.microsoft.com/dotnet/core/aspnet => mcr.microsoft.com/dotnet/aspnet

More
總體來說,更新還是相當順利的,從 3.1 到 5.0,asp.net core 的 API 大多都是兼容的,沒有特別大的變更(Blazor 除外,Blazor有一些大的變更),
只需要更新專案 Target 和包版本以及 dockerfile 中基本鏡像的更新,
docker 鏡像需要注意一下,不僅僅是改一下 tag,從 3.1 改成 5.0,最近我就是這樣改的,結果提示找不到 tag,導致 build 失敗了,
后來仔細看了一下,docker 鏡像名稱也發生了變化,移除了原來鏡像名稱中的 core,更好的體現了 target 的變化,無論是專案檔案中的 TargetFramework 還是 docker 鏡像都移除了名稱中的 core,也正是體現了微軟對于 .net core 的發展路線
后來突然想起來微軟官方檔案上應該有遷移檔案,然后就趕緊去看一下,微軟檔案上已經有說明了 docker 鏡像名稱的變化(應該先看微軟的官方檔案才對,,,不要學我,要先看微軟的檔案)
Reference
- https://hub.docker.com/_/microsoft-dotnet-sdk/
- https://hub.docker.com/_/microsoft-dotnet-aspnet/
- https://hub.docker.com/_/microsoft-dotnet/
- https://docs.microsoft.com/en-us/aspnet/core/migration/31-to-50?view=aspnetcore-5.0&tabs=visual-studio
- https://docs.microsoft.com/zh-cn/aspnet/core/migration/31-to-50?view=aspnetcore-5.0&tabs=visual-studio
- https://github.com/WeihanLi/SparkTodo
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/106115.html
標籤:.NET技术
