轉自:http://www.bubuko.com/infodetail-2100868.htmlhtml
原文:http://www.cnblogs.com/huanent/p/6935719.htmlapi
咱們在引用nuget上的類庫時經常會看到以下類型的包併發
這說明它分別可用於使用.netFramework或使用.net Core的項目.這樣的包能夠兼顧到不一樣框架版本的項目,但只需在nuget發佈一個包就行,很是的方便.框架
那麼如何來建立一個這樣的通用類庫呢? 首先使用vs2017新建一個標準庫.net
編輯csproj文件debug
編輯標籤TagetFramework,添加如圖標出的內容調試
重載項目,而後生成項目能夠發如今debug目錄生成了兩個文件夾,說明你已經建立了一個可用於多個目標框架的類庫,簡稱多目標庫code
僅僅到這步還不夠,由於net45提供的api與netstandard提供的api是有差別的,例如獲取程序工做文件夾路徑的方法htm
使用.net framework4.5的方法是blog
string rootDir = AppDomain.CurrentDomain.BaseDirectory
使用.net core
string rootDir = AppContext.BaseDirectory;
對於這樣有差別的代碼咱們應該使用條件編譯的方法兼容,方法以下 查看項目的編譯符號,項目->右鍵->屬性->生成
能夠看到項目的生成符號是NET45,咱們的兼容代碼就能夠這樣編寫
而且能夠在導航欄來切換不一樣框架版原本進行調試
最後一步就是生成nupkg包來發不到nuget,右鍵項目點擊打包
生成目錄下找到nuget包文件,併發布到nuget