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

我们在引用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

创建可同时用于.net core与.net framework的库,并发布到nuget的相关文章

Mono ASP.NET core 添加 Entity Framework

Mono ASP.NET core 添加 Entity Framework 的时候, 仅仅用 Nuget 添加  System.Data.Entity 是没用的. 还需要添加一个叫做 EntityFramework 的包才能使用.

如何创建一个自己的.NET Core Global Tools

索引 NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:https://www.bitadmincore.com 框架源码:https://github.com/chenyinxin/cookiecutter-bitadmin-core 什么是.NET Core Global Tools 2018年5月31日(北京时间)微软发布了 .NET Core 2.1 正式版,.NET Core Global Tools是 .NET Core 2.1 为我们带来了一个新的特性.

[UWP小白日记-11]在UWP中使用Entity Framework Core(Entity Framework 7)操作SQLite数据库(一)

前言 本文中,您将创建一个通用应用程序(UWP),使用Entity Framework Core(Entity Framework 7)框架在SQLite数据库上执行基本的数据访问. 准备: Entity Framework Core(Entity Framework 7)下文将简称:EF 1.在UWP中使用EF需要更新Microsoft.NETCore.UniversalWindowsPlatform到大于“5.2.2”的版本. 2.直接在“程序包管理器控制台”输入命令来更新:Update-P

登录注册的小项目对比.Net Core与 .Net Framework的一些区别

一.需求: 1.功能只有登录.注册. 二.架构: 1.分别为 UserSys.IServices:主要有实体和对实体的配置,还有对实体的操作接口 UserSys.Services :主要是对自IService层中的接口实现 UserSys.DTO :主要是我们Web层中需要什么实体就给传递什么实体 UserSys.Common:一些通用的组件封装到该类库中 UserSys.Web:Asp.Net MVC 2.Web层采用Asp.Net MVC 3.数据库访问通过EF 三.具体实现    1.写U

.NET Core中的CSV解析库

感谢 本篇首先特别感谢从此启程兄的<.NetCore外国一些高质量博客分享>, 发现很多国外的.NET Core技术博客资源, 我会不定期从中选择一些有意思的文章翻译总结一下. .NET Core中的CSV解析库 本篇博客来源于.NET Core Totorials的<CSV Parsing In .NET Core>. 背景介绍 对于初级程序员来说, 使用string.Split(',')来解析CSV文件基本就是唯一可行的方法, 但是之后他们会发现除了使用逗号分隔值之外,CSV中

ASP.NET Core 配置 Entity Framework Core - ASP.NET Core 基础教程 - 简单教程,简单编程

原文:ASP.NET Core 配置 Entity Framework Core - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 Entity Framework Core 上一章节学习完了视图,其实我们应该立即着手讲解模型的,但 ASP.NET Core MVC 中的模型和 Entity Framework 有相当大的关系,所以,在此之前,我们先来讲讲 Entity Framework Core 和如何配置它 本章中,我们将设置和配置我们的应用程

.NET Core、.NET Standard 、ASP.NET Core 和 .NET Framework 有什么不同?

经查阅.Net Core相关资料: https://www.infoq.cn/article/2017%2F10%2Fdotnet-core-standard-difference https://blog.csdn.net/yiyelanxin/article/details/84439216 对.NET Core..NET Standard .ASP.NET Core 和 .NET Framework有了初步的了解: .NET Core .NET Core是免费.跨平台的,是托管框架的开源实

使用NuGet将我们的ASP.NET Core类库打包并将程序包(类库)发布到NuGet平台上进行管理

本章将和大家简单分享下如何使用NuGet将我们的ASP.NET Core类库打包并将程序包(类库)发布到NuGet平台上进行管理. 一.注册并登录NuGet平台 NuGet官网:https://www.nuget.org/ 此处我使用的是微软账号进行关联登录 登录成功后就可以管理个人信息了,此处就不做过多的描述了 二.下载nuget.exe文件进行ASP.NET Core类库打包 下载完成后如下: 接着修改类库版本等相关信息,点击类库右键属性并选择打包,如下所示: 修改完成后记得保存并重新生成

Numeral.js 是一个用于格式化和数字四则运算的js 库

1.Numeral.js 是一个用于格式化和数字四则运算的js 库. 2.支持多种语言,包含中文在内的17种语言. 在浏览器中引用js文件: <script src="numeral.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/numeral.js/1.4.5/numeral.min.js"></script> 在nodejs开发引用开