重要提醒 1:此工具並非萬能,而是透過工具協助您將 .NET Framework 轉換成 .NET Core,大多數的專案或套件都需要再調整
重要提醒 2:此工具有可能直接進行轉換,若遇到無法轉移的程式會中斷且發出錯誤,雖然工具對於修改過檔案會轉換成.old 檔案,但請務必一定要備份原程式!!
嘗試進行轉移前,可以考慮使用 .NET 可攜性分析器檢視可能轉換失敗的部分,請參考:.NET Portability Analyzer 介紹
安裝
2. 開啟 PowerShell 或 cmd,透過下列指令安裝 try-convert
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dotnet tool install -g try-convert |
操作步驟
安裝完成後,你可以先透過 try-convert --help 指令檢視如何使用
透過說明,我們能夠知道透過 -p 參數可以指定專案 (.csproj) 位置;透過 -w 可以指定工作區位置(若沒有使用 -p 指定專案位置,則會自動搜尋專案或方案進行轉換)。
我們透過下列指令進行轉換
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
try-covert -p c:\your\project\path\project.csproj |
因為我們的範例是 ASP.NET 網站,訊息很明確告至 System.Web 無法轉換 .NET Core 專案。主要原因在於跨平台關係,.NET Core 捨棄舊有又肥又大的 System.Web,將其功能拆分為較小的 lib,故 ASP.NET 網站除了 MVC 專案可以透過另起新的 ASP.NET Core MVC 專案進行程式碼轉貼並重構 (多數內容相似,但仍需微調修改),其餘的 ASP.NET網站應用程式無法直接轉換。您可以參考這篇:從 ASP.NET 移轉至 ASP.NET Core
若專案沒有使用到 System.Web,或許能成功轉移;多數複雜的專案只會有部分轉換,若遭遇無法轉移部份則會中斷,您可以藉此檢視已轉換部分,並手動修改無法轉移部份。下圖為另一個專案部分轉移的結果。
若整個專案失控,該工具也會備份你的檔案(如下圖),比較保險的方式請使用版本控管/備份還原程式。
0 留言