日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

一套代码同时支持.NET Framework和.NET Core

發(fā)布時間:2023/12/4 asp.net 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一套代码同时支持.NET Framework和.NET Core 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在.NET Core的遷移過程中,我們將原有的.NET Framework代碼遷移到.NET Core。如果線上只有一個小型的應(yīng)用還好,遷移升級完成后,只需要維護.NET Core這個版本的代碼。

但是,如果是一個大型分布式應(yīng)用,幾百臺Server,上千個.NET 應(yīng)用進程。這種場景下,在一定的時期內(nèi),我們需要同時維護.NET Framework和.NET Core兩套代碼,同一個產(chǎn)品

特性,需要分別在兩套代碼中實現(xiàn),這種代碼同步的工作量是非常大的。因此,在這種場景下,有必要使用同一套代碼既支持.NET Framework又支持.NET Core.

帶著這個需求場景,我們展開今天的.NET Core技術(shù)研究分享。先總結(jié)一下整體的思路:

1. 在Project工程層面支持多個目標框架,面向不同的.NET 目標框架添加不同的引用

2. 代碼中使用預(yù)處理指令同時支持.NET Framework 和 .NET Core

3. 編譯生成兩個.NET框架的Dll,制作支持多個.NET目標框架的Nuget包

我們先看第一步:

一、在Project工程層面支持多個目標框架,面向不同的.NET 目標框架添加不同的引用

在這個示例代碼中,我們使用了.NET Standard 2.0 Class Library Project。 目標框架同時支持.NET Framework 4.5.1和.NET Standard 2.0

?

?

?雙擊Project, 進入XML文件編輯模式

我們重點編輯TargetFramework這個節(jié),改為TargetFrameworks,例如:

保存后,會提示:

? 全部重新加載后,新的Project的依賴項是這樣的:

? ?

這樣,這個Project就支持了多個.NET 目標框架,我們可以面向不同的.NET 目標框架添加不同的引用,當然如果依賴的Nuget也同時支持相同的.NET 目標框架,那就最匹配了:例如:Newtonsoft.Json

添加Nuget引用后,Project在不同的.NET 目標框架的引用是這樣的:

當然,我們可以為單獨為指定的.NET 目標框架添加不同的引用,例如:

?

參考鏈接:https://docs.microsoft.com/en-us/dotnet/standard/frameworks

二、. 代碼中使用預(yù)處理指令同時支持.NET Framework 和 .NET Core

如果同一塊業(yè)務(wù)邏輯,在.NET Framework和.NET Core實現(xiàn)不一樣,我們在同一個代碼中,如果通過預(yù)處理指令實現(xiàn):


參考鏈接:https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/preprocessor-directives/preprocessor-if

這個地方有個對照表:

這樣,代碼寫完后,編譯一下,可以看到有兩個文件夾生成:

三. 編譯生成兩個.NET框架的Dll,制作支持多個.NET目標框架的Nuget包

?上個步驟中生成的兩個.NET 目標版本的dll,可以分別制作支持多個.NET 目標框架的Nuget包。

?右鍵Project屬性設(shè)置中,可以設(shè)置Nuget打包

?

? ?編譯工程:Successfully created package 'C:\Users\zhougq\source\repos\TestLibrary\bin\Debug\TestLibrary.1.0.0.nupkg'.

? 使用PackageExplorer編輯生成好的Nuget包:

?

? 以上就是本次的.NETCore 技術(shù)分享。

原文鏈接:https://www.cnblogs.com/tianqing/p/11614303.html


.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總?http://www.csharpkit.com?

總結(jié)

以上是生活随笔為你收集整理的一套代码同时支持.NET Framework和.NET Core的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。