asp.net core 从 3.1 到 5.0
asp.net core 從 3.1 到 5.0
Intro
就在前幾天,微軟宣布了 .NET5 發(fā)布了 RC1 版本,這也意味著 .NET5 的開(kāi)發(fā)基本穩(wěn)定了,正式發(fā)布之前,不會(huì)再新增新的 Feature,只會(huì)專注于修復(fù) BUG 提高穩(wěn)定性。
對(duì)于開(kāi)發(fā)者來(lái)說(shuō),RC版本的發(fā)布也意味著功能的穩(wěn)定,可以上手嘗嘗鮮了,正式版的 API 不會(huì)再發(fā)生變化了,即使后面遷移到正式版也會(huì)很簡(jiǎn)單
于是嘗試著把我之前練手的一個(gè)小項(xiàng)目 asp.net core webapi 的項(xiàng)目從 3.1 遷移到了 5.0,意想不到的順利,要比 2.x 更新順利的多
項(xiàng)目文件更新
首先需要更新項(xiàng)目的 TargetFramework 從原來(lái)的 netcoreapp3.1 變更到 net5.0
包引用更新
原來(lái)引用的 3.1.x 版本的 nuget 包更新成 5.0 的包
這里有幾個(gè)不是 asp.net core 的包也順帶更新了
這里更新用的包版本我使用的不是具體的版本號(hào),你也可以使用具體的版本號(hào),都是可以的
Docker 鏡像更新
docker 鏡像的更新分為兩部分,一個(gè)是鏡像名稱,一個(gè)是鏡像 tag
鏡像 tag 比較好說(shuō),要從 3.1 更新成 5.0
鏡像名稱的變化是原來(lái)的鏡像名稱中有一個(gè) core,在 net 5.0 中移除了,不再突出區(qū)分 core 了
具體的如下:
mcr.microsoft.com/dotnet/core/sdk => mcr.microsoft.com/dotnet/sdk
mcr.microsoft.com/dotnet/core/aspnet => mcr.microsoft.com/dotnet/aspnet
More
總體來(lái)說(shuō),更新還是相當(dāng)順利的,從 3.1 到 5.0,asp.net core 的 API 大多都是兼容的,沒(méi)有特別大的變更(Blazor 除外,Blazor有一些大的變更), 只需要更新項(xiàng)目 Target 和包版本以及 dockerfile 中基本鏡像的更新。
docker 鏡像需要注意一下,不僅僅是改一下 tag,從 3.1 改成 5.0,最近我就是這樣改的,結(jié)果提示找不到 tag,導(dǎo)致 build 失敗了,
后來(lái)仔細(xì)看了一下,docker 鏡像名稱也發(fā)生了變化,移除了原來(lái)鏡像名稱中的 core,更好的體現(xiàn)了 target 的變化,無(wú)論是項(xiàng)目文件中的 TargetFramework 還是 docker 鏡像都移除了名稱中的 core,也正是體現(xiàn)了微軟對(duì)于 .net core 的發(fā)展路線
后來(lái)突然想起來(lái)微軟官方文檔上應(yīng)該有遷移文檔,然后就趕緊去看一下,微軟文檔上已經(jīng)有說(shuō)明了 docker 鏡像名稱的變化(應(yīng)該先看微軟的官方文檔才對(duì)。。。不要學(xué)我,要先看微軟的文檔)
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
總結(jié)
以上是生活随笔為你收集整理的asp.net core 从 3.1 到 5.0的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何使用 C# 中的 ValueTask
- 下一篇: 送福利 | 送书3本 ASP.NET C