成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發 開發工具
有了升級工具,升級就變得非常簡單了,本文就介紹使用升級工具將 .NET Core 3.1 項目升級到 .NET 8 。

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

微軟官方推出了升級工具:Upgrade Assistant ,鏈接地址如下:

https://dotnet.microsoft.com/zh-cn/platform/upgrade-assistant/tutorial/intro

有了升級工具,升級就變得非常簡單了,本文就介紹使用升級工具將 .NET Core 3.1 項目升級到 .NET 8 。

安裝 Upgrade Assistant

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

升級項目

.NET Core 3.1 的一個解決方案中,會有很多的項目,按照項目的依賴關系,從最底層的項目逐個往上進行升級。

安裝完升級工具后,在項目上點擊右鍵就會出現 Upgrade 按鈕:

在彈窗中選擇升級方式:

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

選擇需要更新的內容,默認全選,點擊「Upgrade selection」進行升級:

很快就可以看到升級成功的提示:

編譯

我驗證過好幾個低版本的項目,使用工具升級的過程沒有出現果任何錯誤,但升級完后進行代碼編譯就會出現各種問題了。

問題1:Ionic.zip

在原來的版本中,項目中的 zip 壓縮用到了 Ionic.zip ,現在 .NET8 已經不支持了,需要換成 DotNetZip :

問題2:BinaryFormatter 已經過時

代碼中有不少地方使用到了二進制的序列化,但 BinaryFormatter 在 .NET8 中已經棄用,有兩種解決方式:

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

參考:https://learn.microsoft.com/zh-cn/dotnet/fundamentals/syslib-diagnostics/syslib0011。

問題 3:Aspose  使用問題

項目中對 Office 文件的處理,使用了 Aspose 套件,升級后版本有兼容性問題,升級到對應的版本就行。

問題 4:方法二義性

在之前的版本中,List 存儲的如果是一個復雜類型,想要按照類型中的某個字段進行去重是沒辦法直接實現的:

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 中已經默認提供了,會導致方法沖突,只需要將我們的擴展方法去掉,使用默認就好。

運行

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

相比之下,其他有些技術雖然也在不停地更新迭代,但主流使用的還是某個特定的版本。

責任編輯:姜華 來源: 不止dotNET
相關推薦

2025-01-03 08:29:53

2024-11-12 07:28:39

2009-07-29 11:29:16

ASP.NET1.1ASP.NET2.0

2009-09-14 19:30:53

.NET 3.5+VS

2022-04-14 11:53:38

HarmonyRelease鴻蒙

2012-10-11 09:43:34

2020-03-02 14:34:18

.NET版本微軟

2010-07-19 09:13:20

升級到SQL Serv

2022-05-23 09:15:29

Selenium 3Selenium 4

2010-11-15 08:44:38

ASP.NET MVC

2021-02-25 15:14:16

.NET項目攔截器

2025-01-15 00:01:00

開發應用界面

2011-09-27 09:13:16

Ubuntu 11.0

2011-02-18 09:06:15

ChromeChrome DevLinux

2020-01-13 10:00:32

升級Windows 10Windows

2024-05-10 07:31:32

IIS應用程序.NET Core

2013-04-09 09:45:12

Windows 8

2012-06-21 09:10:27

Windows Pho微軟

2023-11-17 08:52:32

.NET8C#

2013-02-27 10:02:23

Win 8升級優惠
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91亚洲免费 | 日韩高清中文字幕 | 亚洲国产精品成人无久久精品 | 天天夜夜操 | 亚洲日韩中文字幕一区 | 范冰冰一级做a爰片久久毛片 | 在线欧美亚洲 | 极品的亚洲 | 国产成人精品免高潮在线观看 | 色天堂视频 | 毛片一级黄色 | 国产精品久久亚洲7777 | 国产激情精品一区二区三区 | 亚洲精品视频免费观看 | 中文字幕国产一区 | av一区二区三区四区 | 成人久久久久 | 99精品一级欧美片免费播放 | 精品一区二区三区在线观看 | 国产视频精品区 | 国产精品久久久久久久久久久久午夜片 | 欧美日韩精品区 | 亚洲播放 | 欧美国产一区二区 | 日韩欧美电影在线 | 欧美福利视频 | 亚洲视频三区 | 在线一区视频 | 久久久夜色精品亚洲 | 国产一级视频在线观看 | 国产美女久久 | 91麻豆久久久 | 日本视频中文字幕 | 久久国产精品偷 | 久久亚洲美女 | 免费一级毛片 | 国产欧美日韩二区 | 91一区| 国产一区二区三区免费观看视频 | 国产精品久久av | 国产成人jvid在线播放 |