前言

  NuGet就是一个包(package)管理平台,确切的说是 .net平台的包管理工具,它提供了一系列客户端用于生成,上传和使用包(package),以及一个用于存储所有包的中心库。

  对于一个现代化的开发平台,建立一种让开发者创建,分享与使用可复用代码的机制是十分必要的。这种“可复用代码”被打包后的文件通常被称作“包”(package),

对于.NET(包括 .NET Core)平台来说这个机制的实现就是NuGet平台。

  NuGet的实现均为开源项目,包括了客户端工具,服务器,官方网站以及各语言的文档等。

  NuGet包的本质是一个以nupkg为后缀的zip压缩文件(你可以将后缀改为.zip后解压查看里面的内容),其中包含了编译后的Dll文件以及其他相关文件。

            图1:显示nuget包从创建,上传到被使用的流程

对于引用大家都会使用,但是对于创建NuGet引用就不怎么会了,我们下面就介绍怎么打包dll类库到NuGet平台进行引用。

创建类库方法

我们首先创建一个可调用的类库,以“繁简体相互转换”为例,当然你也可以创建其他的,比如获取配置文件、http请求帮助类等。

这里使用的环境是vs2019, .NET Core2.1,使用.NET也可以,这里可根据自己的使用环境创建。

注意:类库是什么环境,引用也需要什么环境。(.NET Core和.NET不能相互混用)。

创建一个.NET Core类库项目,命名为“XiongZeUtils”(自定义命名),然后在类库项目下创建一个繁简体项目转换的类,命名为“xzUtils”(自定义)。

注意,繁简体相互转换需要现在NuGet引入包ChineseConverter,然后在类里面引用using Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter,如下:

创建完成后记得需要先编译生成dll文件

using Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter;
using System; namespace XiongZeUtils
{
public static class xzUtils
{
/// <summary>
/// 简体转换为繁体
/// </summary>
/// <param name="str">简体字</param>
/// <returns>繁体字</returns>
public static string GetTraditional(string str)
{
string r = string.Empty;
r = ChineseConverter.Convert(str, ChineseConversionDirection.SimplifiedToTraditional);
return r;
}
/// <summary>
/// 繁体转换为简体
/// </summary>
/// <param name="str">繁体字</param>
/// <returns>简体字</returns>
public static string GetSimplified(string str)
{
string r = string.Empty;
r = ChineseConverter.Convert(str, ChineseConversionDirection.TraditionalToSimplified);
return r;
}
}
}

创建完成后记得需要先编译生成dll文件


NuGet发布到服务器

1、登录NuGet账号获取API keys

官网地址:https://www.nuget.org/

如果你有Microsoft 帐户,直接登录即可。如果没有则需去创建一个。

NuGet登录快捷入口https://www.nuget.org/users/account/LogOn

(注册地址入口比较难找,下面快捷入口直接点击即可注册)

NuGet注册账号快捷入口https://signup.live.com/?lic=1

备用方案:

NuGet.org 上的个人帐户:https://docs.microsoft.com/en-us/nuget/nuget-org/individual-accounts

获取您的 API 密钥:https://docs.microsoft.com/en-us/nuget/quickstart/create-and-publish-a-package-using-visual-studio?tabs=netcore-cli

获取您的 API 密钥

  1. 登录您的 nuget.org 帐户或创建一个帐户(如果您还没有)。

    有关创建帐户的更多信息,请参阅个人帐户

  2. 选择您的用户名(在右上角),然后选择API Keys。

  3. 选择Create,为您的密钥提供一个名称,选择Select Scopes > Push。为Glob 模式输入 * ,然后选择Create。(有关范围的更多信息,请参见下文。)

  4. 创建密钥后,选择复制以在 CLI 中检索您需要的访问密钥:

  5. 重要提示:将您的密钥保存在安全位置,因为您以后无法再次复制该密钥。如果返回 API 密钥页面,则需要重新生成密钥才能进行复制。如果您不想再通过 CLI 推送包,您也可以删除 API 密钥。

范围允许您为不同的目的创建单独的 API 密钥。每个密钥都有其到期时间范围,并且可以限定为特定的包(或 glob 模式)。每个键也适用于特定操作:推送新包和更新、仅推送更新或下架。通过范围界定,您可以为为您的组织管理包的不同人员创建 API 密钥,以便他们仅拥有所需的权限。有关更多信息,请参阅作用域 API 密钥


2、下载Nuget.exe并发布项目

点击下载nuget.exe

https://www.nuget.org/downloads

我这里下载的是5.9.1版本的,版本这里没有特别的要求。

这里只有6M多一点,下载太慢了,我把下载好的放在gitee上,大家直接点击下载解压即可。

下载地址1(git):https://gitee.com/xiongze/nugetexe-file.git

下载地址2(百度网盘):https://pan.baidu.com/s/1RIbJXzn3aoKWURB_VRjx3w    提取码:xion


3、NuGet发布到服务器

将下载下来的nuget.exe与刚才新建的类库放在同一目录下。

 配置发布信息,并将发布路径指向或拷贝到与刚才新建的类库放在同一目录下。

①、找到vs对应的开发人员命令提示(不能用cmd直接打开)

或者 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio 2019\Visual Studio Tools

②命令提示定位到Nuget.exe所在的目录

双击运行 Developer Command Prompt for VS 2019  cd到项目类库的目录

 ③通过命令 nuget setapikey  xxxxx-xxxx-xxx-xxxx-xxxx-xxxx (我们上面nuget copy的key), 设置API Key

通过命令 nuget setapikey  xxxxx-xxxx-xxx-xxxx-xxxx-xxxx , 设置API Key;

 ④生成xxxx.nuspec文件

nuspec是NuGet将项目打包成nupkg的输入文件,可以通过nuget spec命令产生。
通过命令 nuget spec 生成xxxx.nuspec文件;

 ⑤NuGet发布到服务器

通过命令 nuget.exe push xxxxx.nupkg -Source https://www.nuget.org ,将NuGet发布到服务器。

打包成功后,这里需要等待3-10分钟左右,打包成功后nuget就能查询到我们打包的引用了,如果没有的多等待一下。


使用NuGet包

我们这个时候就可以在NuGet里面搜索到我们的类库了,我们引入进来使用一下。

在项目中引入我们的nuget包,然后调用得到下面内容


参考文献

 
欢迎关注订阅微信公众号【熊泽有话说】,更多好玩易学知识等你来取

作者:熊泽-学习中的苦与乐
公众号:熊泽有话说


出处: https://www.cnblogs.com/xiongze520/p/15234581.html



创作不易,任何人或团体、机构全部转载或者部分转载、摘录,请在文章明显位置注明作者和原文链接。

10分钟学会Visual Studio将自己创建的类库打包到NuGet进行引用(net,net core,C#)的更多相关文章

  1. 小白2分钟学会Visual Studio将引用包打包到NuGet上

    前言 之前我们说 10分钟学会Visual Studio将自己创建的类库打包到NuGet进行引用(net,net core,C#),过程有些许繁琐,并且需要有一定的基础. 怎么办呢,不慌,看法宝. 两 ...

  2. 10分钟学会VS NuGet包私有化部署

    前言 我们之前实现了打包发布NuGet,但是发布后的引用是公有的,谁都可以访问,显然这种方式是不可取的. 命令版本:10分钟学会Visual Studio将自己创建的类库打包到NuGet进行引用(ne ...

  3. 10分钟学会Linux

    10分钟学会Linux有点夸张,可是能够让一个新手初步熟悉Linux中最重要最主要的知识,本文翻译的英文网页在众多Linux入门学习的资料中还是很不错的. 英文地址:http://freeengine ...

  4. 在 Visual Studio 2013 中创建 ASP.NET Web 项目(0):专题导航 [持续更新中]

    写在前面的话 随着 Visual Studio 2013 的正式推出,ASP.NET 和 Visual Studio Web 开发工具 也发布了各自的最新版本. 新版本在构建 One ASP.NET ...

  5. 在 Visual Studio 2013 中创建 ASP.NET Web 项目(1):概述 - 创建 Web 应用程序项目

    注:本文是“在 Visual Studio 2013 中创建 ASP.NET Web 项目”专题的一部分,详情参见 专题导航 . 预备知识 本专题适用于 Visual Studio 2013 及以上版 ...

  6. 【转载】在 Visual Studio 2012 中创建 ASP.Net Web Service

    在 Visual Studio 2012 中创建 ASP.Net Web Service,步骤非常简单.如下: 第一步:创建一个“ASP.Net Empty Web Application”项目 创建 ...

  7. Visual Studio 2010中创建ASP.Net Web Service

    转自:http://blog.csdn.net/xinyaping/article/details/7331375 很多人在论坛里说,在Visual Studio 2010中不能创建“ASP.Net ...

  8. 在 Visual Studio 2010 中创建 ASP.Net Web Service

    第一步:创建一个“ASP.Net Empty Web Application”项目 第二步:在项目中添加“Web Service”新项目 第一步之后,Visual Studio 2010会创建一个仅含 ...

  9. (转)在 Visual Studio 2010 中创建 ASP.Net Web Service

    很多人在论坛里说,在Visual Studio 2010中不能创建“ASP.Net Web Service”这种project了,下面跟帖者云云,有的说这是因为微软已经将Web Service整合进W ...

随机推荐

  1. 离线安装rpm包并解决依赖(升级vsftpd为例)

    背景  实际开发中,我们的linux服务器是处理离线状态的,并不能访问互联网.如果此时要在linux上安装或者升级软件,就只能通过rpm包的安装方式.rpm包安装有一个缺陷,就是不能处理安装包的依赖问 ...

  2. tomcat与springmvc 结合 之---第17篇 StandContext容器和SpringMVC的WebApplicationContext的联系

    writedby 张艳涛, 上一篇分析了,dispatcherservlet通过getServletConfig 方法获取了web.xml定义的<param-init>属性的过程 那么在如 ...

  3. Lazysysadmin靶机

    仅供个人娱乐 靶机信息 Lazysysadmin靶机百度云下载链接:https://pan.baidu.com/s/1pTg38wf3oWQlKNUaT-s7qQ提取码:q6zo 信息收集 nmap全 ...

  4. 🔥 LeetCode 热题 HOT 100(31-40)

    75. 颜色分类 思路:将 2 往后放,0 往前放,剩余的1自然就放好了. 使用双指针:left.right 分别指向待插入的 0 和 2 的位置,初始 left 指向数组头,right 指向数组尾部 ...

  5. Mybatis-Plus的配置和基本使用

    目录 基本配置 简单使用 代码生成器 基本配置 首先新建一个springboot项目,然后导入数据库驱动,lombok和mybatis-plus依赖: <!-- 数据库驱动 --> < ...

  6. windows的基本命令和环境配置

    刚开始学的时候整理的基本知识 一.windows的基础知识: 1.常用的DOS命令 盘符切换: D: 回车 进入目录: cd xxx 回退目录 返回到上一级: cd ..  返回到根目录: cd / ...

  7. MOOC大学计算机课程推荐

    转自:https://zhuanlan.zhihu.com/p/30659834  这个是大佬总结的, 大学计算机课程 以下课程是我在MOOC上找到的所有我认为讲的好的. 主要是中国大学MOOC,学堂 ...

  8. etcd学习(6)-etcd实现raft源码解读

    etcd中raft实现源码解读 前言 raft实现 看下etcd中的raftexample newRaftNode startRaft serveChannels 领导者选举 启动并初始化node节点 ...

  9. Thymeleaf页面静态化技术

    Teymeleaf的使用 案例一:springboot搭建Thymeleaf 1.导入依赖 2.新建html页面模板 3.新建前端控制层Controller 4.新建启动类 1.导入依赖 <?x ...

  10. 痞子衡嵌入式:i.MXRT中不支持DQS的FlexSPI引脚组连接Flash下载与启动注意事项

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT中不支持DQS的FlexSPI引脚组连接Flash下载与启动注意事项. 最近痞子衡在支持一个印度客户,这个客户项目主芯片选择 ...