我们在引用nuget上的类库时常常会看到如下类型的包
这说明它分别可用于使用.netFramework或使用.net Core的项目.这样的包可以兼顾到不同框架版本的项目,但只需在nuget发布一个包就行,非常的方便.
那么如何来创建一个这样的通用类库呢?
首先使用vs2017新建一个标准库
编辑csproj文件
编辑标签TagetFramework,添加如图标出的内容
重载项目,然后生成项目可以发现在debug目录生成了两个文件夹,说明你已经创建了一个可用于多个目标框架的类库,简称多目标库
仅仅到这步还不够,因为net45提供的api与netstandard提供的api是有差异的,例如获取程序工作文件夹路径的方法
使用.net framework4.5的方法是
string rootDir = AppDomain.CurrentDomain.BaseDirectory
使用.net core
string rootDir = AppContext.BaseDirectory;
对于这样有差异的代码我们应该使用条件编译的方法兼容,方法如下
查看项目的编译符号,项目->右键->属性->生成
可以看到项目的生成符号是NET45,我们的兼容代码就可以这样编写
并且可以在导航栏来切换不同框架版本来进行调试
最后一步就是生成nupkg包来发不到nuget,右键项目点击打包
生成目录下找到nuget包文件,并发布到nuget
时间: 2024-10-02 14:03:08