從 .NET 6 更新到 .NET 7

Upgrade from .NET 6 to .NET 7

Intro

.NET 7 已經發布了一段時間了,將幾個服務升級到了 .NET 7,升級還是比較順利的,也有遇到幾個問題,分享一下

TargetFramework

首先我們需要將項目文件中的目標框架(TargetFramework)從 .NET 6 更新到 .NET 7,

092b3150f9f07379093ec31c2af89467.png

如果是類庫項目可以考慮增加 .NET 7 的目標框架

升級之后有一些 .NET 框架相關的 NuGet 包也可以升級更新到 7.0.0

493f63f6086891f9609f127faad407a2.png

NuGet Packages

如果項目里有用到 global.json 也要注意更新一下 SDK 的版本

4061e7c4d359364b03cac2bf7bf6b033.png

Global json

CI update

CI 配置也需要更新到 .NET 7 或者增加 .NET 7 的環境,我個人平時使用的比較多的是 Github Actions 和 Azure DevOps 的 Pipeline,這里以這兩種為例

Github Actions 更新示例:

191fb4944ebb95924880d205fc361cd2.png

如果要配置多個版本的 SDK 也可以配置一次就可以,可以在一個 step 里配置多個 version,示例如下:

093b4d3f00acdfbad80adb2e97b241ea.png

Azure pipeline CI 更新示例:

eef5d8a23af0de74dc5b38d339856a8c.png

Azure Pipeline

這里的示例是增加了 .NET 7 的 SDK,如果 .NET 6 的環境不再需要也可以直接把 .NET 6 SDK 的配置去掉

0ffb0917e3c0ba3fdc30aad4c1fd1d37.png

Dockerfile

如果項目里有打包 docker 鏡像,更新了之后別忘記更新一下 Dockerfile 里的 base image

2ac32e3f9a9ef8689dfe71157f0bb16d.png

CodeSpace

如果你定制了 Github 的 CodeSpace 或者有在用 devcontainer 之類的環境,如果之前是 .NET 6 的環境別忘記更新到 .NET 7 環境,將原來 .NET 6 的鏡像更新到 .NET 7

748db7dcea888c4979a99bf729fe3845.png

dotnet-monitor

有幾個項目有使用到 dotnet-monitor 來作為 sidecar 來收集應用程序的狀態,升級時也遇到了點問題

主要使用的 tag 沒有指定,相當于使用的是 latest,拉取最新鏡像的時候拉了 dotnet-monitor:7 的鏡像有一些 breaking change 導致 monitor 起不來,應用也無法啟動,可以參考:https://github.com/dotnet/dotnet-monitor/issues/2892

修復辦法:

  1. 指定使用 dotnet-monitor:6

  2. 使用 dotnet-monitor:7 ?的時候需要修改啟動參數

-?args:?[?"--no-auth"?]
+?args:?[?"collect",?"--urls",?"http://+:52323",?"--no-auth"]

More

EF 7 更新后,有些項目里的一些更新和刪除操作也可以升級為 EF 7 里的批量更新和刪除操作了~

在更新一個 WPF 項目時,項目里有用到 MaterialDesignThemes 想著一起升級,升級之后有一些不兼容的變化折騰了一段時間,升級第三方的類庫的時候注意看一下 breaking changes 可能會少踩一些坑

References

  • https://github.com/WeihanLi/SparkTodo/commit/dc8b854f79817b9fe657d6da1f3b00752187f0f0

  • https://github.com/WeihanLi/SparkTodo/commit/87adcc02207bd5fb35f5ae5e078c998cc0a26fa7

  • https://github.com/WeihanLi/dotnet-httpie/commit/66ef609973a932dc9e419c9530658dbd884797f7

  • https://github.com/OpenReservation/ReservationServer/commit/0be1715fceceb4ebbf8c625cb9db4ee8cddd1632

  • https://github.com/night-moon-studio/NatashaPad/pull/15

  • https://github.com/dotnet/dotnet-monitor/issues/2892

  • https://github.com/dotnet/dotnet-monitor/discussions/2864

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/280901.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280901.shtml
英文地址,請注明出處:http://en.pswp.cn/news/280901.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL-05:pymysql與pycharm設置

PyMySQL介紹 PyMySQL 是在 Python3.x 版本中用于連接 MySQL 服務器的一個庫,Python2中則使用mysqldb。 Django中也可以使用PyMySQL連接MySQL數據庫。 PyMySQL安裝 pip install pymysql 連接數據庫 前置條件: 已有一個MySQL數據庫,并且…

如何將前端數據保存到文件

有時候,網頁上需要提供將當前頁面上的數據導出為本地文件的功能,例如將頁面上的一個表格導出為csv文件。這個功能看似簡單,實際上卻沒有什么直接的方法。由于導出文件的操作(比如瀏覽文件目錄,創建本地文件等&#xff…

hdmi-cec_如何使用HDMI-CEC使用PlayStation 4或Pro自動打開電視

hdmi-cecCall it petty, but there’s just something about eliminating the “turn on the TV” portion of firing up your PlayStation 4 that makes the whole process seem faster. And the good news is that getting this action on your setup is as easy and ticking…

Microsoft POS for .NET v1.12 發布了

Microsoft POS for .NET v1.12是一個類庫,它為你的.NET應用程序與POS設備的交互提供了一組簡單統一的接口。使得供應商能夠為常見的POS設備(如收銀機,掃描儀等)輕松開發出通用的應用程序,您可以在此處下載.POSv1.12的更新:與 UPOS…

【APP接口開發】常用HTTP響應頭狀態碼詳解

1、200 OK,客戶端請求城成功 2、400 Bad Request ,客服端請求語法錯誤,服務器無法理解和處理 3、401 unauthorized,請求未通過認證 4、403 permission forbidden ,無權限 5、404 URI不存在,訪問的資源不存在…

leetcode——Lowest Common Ancestor of a Binary Tree

題目 Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. 思路 這一次說的是一個普通的二叉樹,給出兩個節點。求他們的最低公共父節點。回憶一下,當這棵二叉樹是二分查找樹的時候的解決方式: 二分…

MySQL-06:pyMySQL增刪改查基本命令筆記

增 # 導入pymysql模塊 import pymysql # 連接database conn pymysql.connect(host“你的數據庫地址”, user“用戶名”,password“密碼”,database“數據庫名”,charset“utf8”) # 得到一個可以執行SQL語句的光標對象 cursor conn.cursor() sql "INSERT INTO USER1(n…

ABP Framework 7.0 RC 新增功能簡介

imageABP Framework 在架構上有四大目標:模塊化、DDD、多租戶和微服務。從 7.0 更新的功能來看,其側重點轉向微服務場景的實現,比如:Dapr 集成、動態權限和功能、外部本地化、分布式實體緩存服務,都是對微服務和分布式…

(原創) 07/28/1982 少女A (中森明菜)

Abstract明菜的第二首單曲,也是她的成名曲,在臺灣曾經被歌手嘟嘟翻唱過。 Introduction[hjp2400,300,true]http://oomusou.googlepages.com/shojo_a.flv[/hjp2] 明菜從『少女A』這首單曲才開始竄紅,走的也是可愛路線,招牌的『明菜…

ftp服務

1.ftp工作原理FTP是一個客戶機/服務系統。用戶通過一個支持FTP協議的客戶機程序,連接到在遠程主機上的FTP服務器程序。用戶通過客戶機程序向服務器程序發出命令,服務器程序執行用戶所發出的命令,并將執行的結果返回到客戶機。2.安裝ftp服務yu…

Spark Streaming高級特性在NDCG計算實踐

從storm到spark streaming,再到flink,流式計算得到長足發展, 依托于spark平臺的spark streaming走出了一條自己的路,其借鑒了spark批處理架構,通過批處理方式實現了實時處理框架。為進一步了解spark streaming的相關內…

mac觸控板 鼠標中鍵_如何在Windows 10中停止意外的觸控板點擊(以及其他鼠標增強功能)...

mac觸控板 鼠標中鍵It’s been the bane of laptop users for years: you’re typing away, your palm brushes the trackpad, and the accidental click inserts the cursor in the middle of the text completely screwing things up. Banish the frustration of accidental …

.Net 7的AOT原理簡析

楔子上節了解AOT和CLR的區別,這節來稍微深入看下AOT的原理是什么?原理其實 AOT 的原理非常簡單,為啥呢?因為微軟又回歸了傳統,搞起來Obj目標文件和Link連接器。當年的VC就是這么弄的。AOT的編譯實際上是圍繞這兩個東西…

垂直居中及容器內圖片垂直居中的CSS解決方法

方法一: <style type"text/css"> <!-- * {margin:0;padding:0} div { width:500px; height:500px; border:1px solid #666; overflow:hidden; position:relative; display:table-cell; text-align:center; vertical-align:middle } div p …

Django04: ORM配置與使用MySQL數據庫

配置&#xff1a; 1.手動創建數據庫。 create database testDB 2. 在Django項目的settings.py文件中&#xff0c;配置數據庫連接信息&#xff1a; DATABASES {"default": {"ENGINE": "django.db.backends.mysql","NAME": "你…

推薦一款 .NET 編寫的 嵌入式平臺的開源仿真器

Renode 是一個開發框架&#xff0c;通過讓你模擬物理硬件系統來加速物聯網和嵌入式系統開發。Renode 可以模擬 Cortex-M、RISC-V 等微控制器&#xff0c;不僅可以模擬 CPU指令&#xff0c;還可以模擬外設&#xff0c;甚至可以模擬板載的外設。更強的是&#xff0c;它可以讓你在…

Android Bluetooth模塊學習筆記

一、藍牙基礎知識 1.藍牙&#xff08; Bluetooth &#xff09;是一種無線技術標準&#xff0c;可實現固定設備、移動設備和樓宇個人域網之間的短距離數據交換。藍牙基于設備低成本的收發器芯片&#xff0c;傳輸距離近、低功耗。 2.微波頻段&#xff1a;使用2.402GGHz到2.480GHz…

sql刪除無人借閱的書_查找,下載,借閱,租賃和購買電子書的最佳網站

sql刪除無人借閱的書So, you’ve got yourself an eBook reader, smartphone, tablet, or other portable device and you want to put some eBooks on it to take with you. There are many options for obtaining free eBooks as well as purchasing, borrowing, or even ren…

django05:ORM示例--person 增刪改查

建立數據庫連接后&#xff0c;演示代碼 見我的資源 https://download.csdn.net/my

C#如何用正則表達式截取https和帶端口的域名

如題。現有代碼如下。只能截取 http://www.baidu.com的 www.baidu.com當域名為https://www.baidu.com 或者為 http://www.baidu.com:8080 時 則無法正確讀取。。求高手給去能截取這樣格式的代碼 Thanks!string p "http://[^\.]*\.(?<domain>[^\.]*)";Regex r…