將 .NET Framework 項目轉換為 .NET Standard 項目


將 .NET Framework 項目轉換為 .NET Standard 項目

獨立觀察員 2020 年 8 月 20 日

如今 .NET Core 是未來發展的主流(至少在 .NET 5 發布之前),而我們如果要改造一個項目為 .NET Core 項目,則它引用的項目應當先改造為 .NET Standard 項目。

下表給出了每種平台支持指定的 .NET Standard 版本的最低版本(參考):

 

 

簡單說明一下:.NET Standard 2.0 支持 .NET Core 2.0 和 .NET Framework 4.6.1(最好使用 4.7.2 或更高),所以使用這些版本的話就不用進行多平台配置了。.NET Standard 2.1 開始就和 .NET Framework 不兼容了,這種情況還是要多平台配置。(關於多平台配置,后面會提到)

 

言歸正傳,我們如何將 Framework 類庫項目轉換為 Standard 類庫項目呢?答案就是使用 dotnet try-convert 工具。

安裝前先要確保你已經安裝了 .NET Core SDK (get it here),然后在任務欄搜索 “cmd”,以管理員身份運行:

 

使用如下命令安裝或卸載:

:: 安裝:
dotnet tool install -g try-convert
:: 卸載:
dotnet tool uninstall -g try-convert

 

我已經安裝過了:

 

接下來在項目路徑打開 cmd,使用如下命令進行轉換:

try-convert

 

轉換前:

 

轉換后:

 

 

可以看到已備份了舊的項目文件,並修改出了新的項目文件。這時我們點擊 VS 的彈框重載項目即可(沒有打開 VS 則無此操作):

 

由於使用了新的項目文件,我們在項目上右鍵,就能看到 “編輯項目文件” 的選項:

 

 

打開后發現,項目類型還是 .NET Framework 4.5.2(net452):

 

在項目上右鍵–屬性,可以看到目標框架也還是以前的:

 

那么我們接下來就來進行 “多平台配置” 吧。

首先,在項目文件中將 TargetFramework 改為 TargetFrameworks (加個 “s”),然后里面的內容加上 “netstandard2.0” ,並與之前的內容以分號隔開,修改后如下:

 

然后我們關閉 VS 並重新打開(重新加載解決方案),再次查看項目屬性,可以看到目標框架里沒有指定特定的內容了,生成一下也沒什么錯誤,說明配置成功了。

 

另外,新式項目的依賴項組織形式也發生了變化:

 

如果解決方案里有多個項目需要轉換,也可以定位在解決方案目錄,然后執行轉換命令(try-convert),已轉換的項目會自動跳過,剩余項目將自動批量轉換:

 

 

 

通過命令輸出,我們還得知了新式的項目類型叫做 “.NET SDK-style project” ,哈哈,漲姿勢了。

 

如果 .NET Standard 依賴項中出現了黃色三角形:

 

可以看看該項是否需要,不需要的可以移除。另外,在打開的類文件標簽下方可以手動選擇當前在什么框架下查看:

 

如果有引用在 .NET Standard 框架下沒有,可在 “包” 上右鍵–“管理 NuGet 程序包”:

 

然后搜索並安裝:

 

好了,大致就是這些了。

 

參考:

從 .NET Framework 移植到 .NET Core 的概述

 

 同步首發:

http://dlgcy.com/net-framework-to-net-standard/

 

 

出處:https://www.cnblogs.com/weiliuhong/p/net-framework-to-net-standard.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM