ASP.NET Core 2.0 升級 2.2 雜記

栏目: ASP.NET · 发布时间: 5年前

内容简介:發現前幾天提到的ASP.NET 官方文件有簡單整理 2.0 升 2.2 的 .csproj 的修改要點:

發現前幾天提到的 ASP.NET Core with Vue 專案範本 ,因未納入官方支援的版本較舊停在 ASP.NET Core 2.0。 我的 Coding4Fun 專案用 2.0 跑其實也沒有什麼問題,但想想未來難免遇到需升級 .NET Core 版本場合,趁機累積點經驗也好。

ASP.NET 官方文件有 1.x 升 2.02.0 升 2.12.1 升 2.22.2 升 3.0 的說明, 照方煎藥即可。

簡單整理 2.0 升 2.2 的 .csproj 的修改要點:

  1. <TargetFramework>netcoreapp2.0</TargetFramework> 改成 <TargetFramework>netcoreapp2.2</TargetFramework>
    基本上修改這條就能改編譯成 2.2,其餘偏向優化調整。
    註:ASP.NET Core 的 TFM 也可設成 .NET Framework (net461, net472),但既然走 .NET Core 我會以跨平台為目標,後面整理將忽略 .NET Framework/IIS 的注意事項。
  2. <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.7" /> 改成 <PackageReference Include="Microsoft.AspNetCore.App" />
    ASP.NET Core 開發團隊在 2.1 版做了一個革新,建議開發者用 Microsoft.AspNetCore.App 取代 Microsoft.AspNetCore.All。 Microsoft.AspNetCore.App 為 Metapackage , 實質上是張 NuGet Package 清單,列舉 ASP.NET Core、EF Core 所需的 Package, 而 Microsoft.AspNetCore.AppMicrosoft.AspNetCore.All 最重要的差別在於 Microsoft.AspNetCore.App 移除了對第三方套件的依賴 (極少數的例外是 Json.NET、Remotion.Linq 及 IX-Async 因為太重要少了會哭),以確保版本匹配。
    因此,改用 Microsoft.AspNetCore.App 後可能需要手動補回被排除的第三方套件參照。
  3. 移除以下 <DotNetCliToolReference> (2.1 起改為 .NET Core CLI 內建,不需額外參照:
    • Microsoft.DotNet.Watcher.Tools (dotnet watch)
    • Microsoft.EntityFrameworkCore.Tools.DotNet (dotnet ef)
    • Microsoft.Extensions.Caching.SqlConfig.Tools (dotnet sql-cache)
    • Microsoft.Extensions.SecretManager.Tools (dotnet user-secrets)
  4. <DotNetCliToolReference> Microsoft.VisualStudio.Web.CodeGeneration.Tools 可移除,改用 dotnet tool install -g dotnet-aspnet-codegenerator 安裝成所有專案共用。

.vscode/launch.json 的 "program": "$/bin/Debug/netcoreapp2.2/test-app.dll" 版號記得要調整。

程式方面,Program.cs 與 Startup.cs 可考慮調整(非必要),因細節較瑣碎請自行參考 官方文件 Changes to Main、Changes to Startup 小節。

如果原本 2.0 有使用 Identity UI,可考慮改用走 Razor Class Library(RCL) 的新版,讓專案架構更簡潔些。

可考慮修改 _Layout.cshtml 加入 <partial name="_CookieConsentPartial" /> 以符合 GPDR 要求,jQuery 由 2.2.0 升至 3.3.1(2.1 專案多了 Views/Home/Privacy.cshtml 也有助於符合 GDPR 可一併偷來用),_ValidationScriptsPartial.csthml jquery.validation 由 1.14.0 升至 1.17.0。

心得:2.0 升 2.2 修改 <TargetFramework>netcoreapp2.2</TargetFramework> 即可升級,餘下的多屬優化微調,工程不大。

我還順便看了尚在 Preview 階段的 3.0,其變化幅度較大:不需要在 .csproj 裡參照 Microsoft.AspNetCore.App 或 Microsoft.AspNetCore.All,一些組件已改內建不需參照,有些組件則從 Microsoft.AspNetCore.App 移除,需要額外加入參照,如:Microsoft.EntityFrameworkCore 及 System.Data.SqlClient。一個大消息是 ASP.NET Core 3.0 移除 對 Json.NET 的依賴,JSON 處理 API 改內建以藉由 .NET Core 2.1 新推出的 Span<T> (又是一個值得關注的新玩意兒)提升效能,但 JSON 處理改為可抽換式允許開發者選用偏好版本,故亦可沿用 Json.NET。此外,Program.cs 裡的 IWebHostBuilder 需微調為 IHostBuilder。 3.0 仍處於預覽階段,仍可能會有小幅調整,等正式推出後再玩好了。

Notes about migrating current ASP.NET Core 2.0 project to 2.2.


以上所述就是小编给大家介绍的《ASP.NET Core 2.0 升級 2.2 雜記》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

引爆社群

引爆社群

唐兴通 / 机械工业出版社华章科技 / 2015-3 / 49

科技延伸媒介,移动互联网技术催生了微信等各种新的媒体;媒介更新人文,新媒介让互联网重回社群时代;人文重塑商业规则,社群时代的商业模式与法则究竟是怎样的?我们应该如何去适应和应对?本书提出的“新4C法则”为此给出了解决方案。关于如何运用这个法则,本书给出了详尽的阐述。但是,要利用好这个法则,需要我们对它有深入的理解。 场景(Context):移动互联网时代场景为王,所有基于移动互联网的产品和服......一起来看看 《引爆社群》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试