建立可同时用于.net core与.net framework的库,并发布到nuget

转自: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

输入图片说明

输入图片说明

相关文章
相关标签/搜索