#detail #dotNetUpgrade
[參考來源是這裡](https://learn.microsoft.com/zh-tw/dotnet/core/porting/upgrade-assistant-overview?WT.mc_id=dotnet-35129-website#upgrade-with-the-cli-tool)
.Net升級工具是這裡:[[CoreMVC/dotNet Framework upgrade]]
> [!NOTE] 透過命令列下載.Net升級工具
> >工具 > 命令列 > 開發人員命令提示字元,安裝指令如下:
> >`dotnet tool install -g upgrade-assistant`
>>若要進行更新:
>>`dotnet tool update -g upgrade-assistant`
>>
>>查看可執行的功能
>>`upgrade-assistant --help`
>[!ABSTRACT] 進行專案分析
>由於分析後,提及需轉為SDK專案樣式,這個步驟可以在升級時進行。
>>`upgrade-assistant analyze +<專案路徑>`
>>![[CoreMVC/UpgradeDetail_photo/image.png]]
>>![[CoreMVC/UpgradeDetail_photo/image-11.png]]
>[!SUCCESS] 進行升級
>>**請記得備份原始專案!**
>>`upgrade-assistant upgrade +<專案路徑>`
>>輸入後,會詢問如何升級,在此先選擇升級專案功能(將專案轉換成SDK樣式)
>>![[CoreMVC/UpgradeDetail_photo/image-1.png]]
>>![[CoreMVC/UpgradeDetail_photoimage.png]]
轉換成SDK後,檔案目錄會變成像這樣:
| 轉換前 | 轉換後 |
| :------------------------------------------------: | :------------------------------------------: |
| ![[CoreMVC/UpgradeDetail_photo/image-2.png\| 350]] | ![[CoreMVC/UpgradeDetail_photo/image-3.png]] |
| | |
> [!WARNING] 轉換完成後,記得再次進行分析
> >[!info] 產生了另外的問題?
> >提示需移除套件,但在升級時也會自動進行套件移除。
> >![[CoreMVC/UpgradeDetail_photo/image-4.png]]
> >![[CoreMVC/UpgradeDetail_photo/image-5.png]]
> [!TIP] 接續升級.net 8
> >再次使用升級指令後,會詢問偏好的目標架構:
> >![[CoreMVC/UpgradeDetail_photo/image-6.png]]
> >能夠發現到不相容的套件已經移除或變更參考目的。
> >![[CoreMVC/UpgradeDetail_photo/image-7.png]]
> >更新完即為.NET8.0
> >![[CoreMVC/UpgradeDetail_photo/image-8.png]]
> >特定的NuGet套件需重新安裝
> >![[CoreMVC/UpgradeDetail_photo/image-13.png]]
> >修正部分語法
> >![[CoreMVC/UpgradeDetail_photo/image-9.png]]
> >>[!BUG] 部分套件問題
> >>#### **app.config的system.web**,
> >>是由VS專案自動產生,
> >>若無使用者驗證機制的話可先行移除,
> >> ![[CoreMVC/UpgradeDetail_photo/image-12.png]]
> >>若沒有先行移除,於專案編譯會出現問題。
> >>[參考資料]( https://stackoverflow.com/questions/1231120/system-web-inside-of-app-config-file-with-clientauthenticationmembershipprovider)
> >>![[CoreMVC/UpgradeDetail_photo/image-10.png]]
> >>#### **Microsoft.Data.SqlClient連線問題**
> >>[參考資料](https://learn.microsoft.com/zh-tw/troubleshoot/sql/database-engine/connect/certificate-chain-not-trusted?tabs=ole-db-driver-19)
> >>該套件於4.0的版本後,因應Azure會連線至雲端,故加入驗證機制
> >>若沒有提供驗證憑證會發生錯誤
> >>於此先強制信任SQL Server的憑證解決,在app.config加入下列:
> >>`TrustServerCertificate=True`
> >>> [!DANGER] 已記錄的套件變更
>>>> | 舊版 | 新版 |
>>>> | -- | -- |
>>>> | Interop.CDO | System.Net.Mail|
>>>> | System.Data.SqlClient | Microsoft.Data.SqlClient|