日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

.NET Core 3.1 升級到 .NET 8,看看都有哪些變化

來源: 責編: 時間:2023-12-08 09:13:45 284觀看
導讀.NET Core 3.1 已經用了很長一段時間,其實在 2022 年的年底微軟已經不提供支持了,后面的一個 LTS 版本 .NET 6 也會在 2024 年 11 月終止支持,所以直接升級到 .NET 8 是最好的選擇。微軟官方推出了升級工具:Upgrade Assis

bRx28資訊網——每日最新資訊28at.com

.NET Core 3.1 已經用了很長一段時間,其實在 2022 年的年底微軟已經不提供支持了,后面的一個 LTS 版本 .NET 6 也會在 2024 年 11 月終止支持,所以直接升級到 .NET 8 是最好的選擇。bRx28資訊網——每日最新資訊28at.com

微軟官方推出了升級工具:Upgrade Assistant ,鏈接地址如下:bRx28資訊網——每日最新資訊28at.com

https://dotnet.microsoft.com/zh-cn/platform/upgrade-assistant/tutorial/introbRx28資訊網——每日最新資訊28at.com

有了升級工具,升級就變得非常簡單了,本文就介紹使用升級工具將 .NET Core 3.1 項目升級到 .NET 8 。bRx28資訊網——每日最新資訊28at.com

安裝 Upgrade Assistant

先確保  VS2022  已經升級到了 17.8 。然后在 VS2022 的擴展管理中安裝擴展:.NET Upgrade Assistant ,需要特別注意的是,如果之前安裝過升級工具擴展,需要卸載重新安裝。bRx28資訊網——每日最新資訊28at.com

bRx28資訊網——每日最新資訊28at.com

升級項目

.NET Core 3.1 的一個解決方案中,會有很多的項目,按照項目的依賴關系,從最底層的項目逐個往上進行升級。bRx28資訊網——每日最新資訊28at.com

安裝完升級工具后,在項目上點擊右鍵就會出現 Upgrade 按鈕:bRx28資訊網——每日最新資訊28at.com

bRx28資訊網——每日最新資訊28at.com

在彈窗中選擇升級方式:bRx28資訊網——每日最新資訊28at.com

bRx28資訊網——每日最新資訊28at.com

選擇升級的目標版本,這里我選擇 .NET 8 ,這是一個長線支持版本,最新版本的升級工具只支持升級到 7 和 8 了,如果有升級到 .NET 6 的需求,就需要使用老版本了:bRx28資訊網——每日最新資訊28at.com

bRx28資訊網——每日最新資訊28at.com

選擇需要更新的內容,默認全選,點擊「Upgrade selection」進行升級:bRx28資訊網——每日最新資訊28at.com

bRx28資訊網——每日最新資訊28at.com

很快就可以看到升級成功的提示:bRx28資訊網——每日最新資訊28at.com

bRx28資訊網——每日最新資訊28at.com

編譯

我驗證過好幾個低版本的項目,使用工具升級的過程沒有出現果任何錯誤,但升級完后進行代碼編譯就會出現各種問題了。bRx28資訊網——每日最新資訊28at.com

問題1:Ionic.zip

在原來的版本中,項目中的 zip 壓縮用到了 Ionic.zip ,現在 .NET8 已經不支持了,需要換成 DotNetZip :bRx28資訊網——每日最新資訊28at.com

bRx28資訊網——每日最新資訊28at.com

問題2:BinaryFormatter 已經過時

代碼中有不少地方使用到了二進制的序列化,但 BinaryFormatter 在 .NET8 中已經棄用,有兩種解決方式:bRx28資訊網——每日最新資訊28at.com

  • 修改源代碼,采用新的推薦的方式進行替換。
  • 修改項目文件,忽略此問題,在項目文件種添加下面配置:
<Project Sdk="Microsoft.NET.Sdk">  <PropertyGroup>   ...   <NoWarn>$(NoWarn);SYSLIB0011</NoWarn>  </PropertyGroup></Project>

參考:https://learn.microsoft.com/zh-cn/dotnet/fundamentals/syslib-diagnostics/syslib0011。bRx28資訊網——每日最新資訊28at.com

問題 3:Aspose  使用問題

項目中對 Office 文件的處理,使用了 Aspose 套件,升級后版本有兼容性問題,升級到對應的版本就行。bRx28資訊網——每日最新資訊28at.com

bRx28資訊網——每日最新資訊28at.com

問題 4:方法二義性

在之前的版本中,List 存儲的如果是一個復雜類型,想要按照類型中的某個字段進行去重是沒辦法直接實現的:bRx28資訊網——每日最新資訊28at.com

List<UserInfo> list = new List<UserInfo>();list.Add(new UserInfo() { Name="oec2003",Age=18});list.Add(new UserInfo() { Name = "oec2003" ,Age=18});list.Add(new UserInfo() { Name = "oec2004" ,Age=18});list.Add(new UserInfo() { Name = "oec2004" ,Age=18});var distnctList = list.DistinctBy(x=>x.Age);foreach (var item in distnctList){    Console.WriteLine(item.Name);}public class UserInfo{    public string Name { get; set; }    public int Age { get; set; }}

上面代碼中的 DistinctBy 方法在 .NET Core 3.1 中是沒有的,所以我們擴展了一個 DistinctBy 方法,沒想到 .NET8 中已經默認提供了,會導致方法沖突,只需要將我們的擴展方法去掉,使用默認就好。bRx28資訊網——每日最新資訊28at.com

bRx28資訊網——每日最新資訊28at.com

運行

解決了上面的幾個編譯問題后,程序就能正常啟動運行了,整個過程還是非常快速的,不得不說,微軟的技術向下兼容做的是非常不錯的,再加上工具的加持,升級到新的版本沒有什么壓力和負擔。bRx28資訊網——每日最新資訊28at.com

相比之下,其他有些技術雖然也在不停地更新迭代,但主流使用的還是某個特定的版本。bRx28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-39501-0.html.NET Core 3.1 升級到 .NET 8,看看都有哪些變化

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: EventLoop = TaskQueue + RenderQueue,你看明白了嗎?

下一篇: 你了解Spring AOP的這個技能點嗎?有什么應用場景?

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 阜阳市| 景德镇市| 凤凰县| 阜康市| 大港区| 龙胜| 科尔| 莲花县| 孟村| 颍上县| 许昌市| 平安县| 句容市| 通许县| 兴山县| 盐边县| 轮台县| 宕昌县| 台北市| 葵青区| 彰化县| 耿马| 九寨沟县| 遂平县| 邳州市| 盘山县| 托克托县| 丰原市| 中江县| 阿拉善右旗| 右玉县| 松桃| 上高县| 青神县| 涿鹿县| 清丰县| 罗平县| 长海县| 淅川县| 兴义市| 丹棱县|