前言

  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. Hadoop (8088)未授权访问

    cd /vulhub/hadoop/unauthorized-yarn 加速下载环境 sudo vim /etc/docker/daemon.json 添加 {"registry-mirro ...

  2. [源码解析] 机器学习参数服务器ps-lite 之(3) ----- 代理人Customer

    [源码解析] 机器学习参数服务器ps-lite 之(3) ----- 代理人Customer 目录 [源码解析] 机器学习参数服务器ps-lite 之(3) ----- 代理人Customer 0x0 ...

  3. 开机时自动启动的AutoHotkey脚本 2019年10月09日

    ;;; 开机时自动启动的AutoHotkey脚本 2019年10月09日;; http://www.autoahk.com/archives/16600; https://www.cnblogs.co ...

  4. 官宣 .NET MAUI 预览版 6

    最近,我们发布了.NET 多平台应用程序UI (MAUI)的最新进展. 在此版本中,我们全力支持Visual Studio 2022 预览版2.这也标志着我们首次将.NET MAUI 作为工作负载安装 ...

  5. Flutter 中的动画

    Flutter 中动画的创建有很多种, 需要根据具体的需求选择不同的动画.如果只是简单的布局等的动画直接使用最简单的隐式动画就可以了,因为隐式动画是由框架控制的,所以仅仅只需要更改变需要变化属性就可以 ...

  6. Send Excerpts from Jenkins Console Output as Email Contents

    Sometimes we need to send some excerpts from Jenkins console output (job logs) as email, such as tes ...

  7. FIFO 深度了解

    嘻哈第二篇,深度聊聊各种细节. 优化与跨时钟阈分析

  8. CAS5.3服务器搭建与客户端整合SpringBoot以及踩坑笔记

    CAS5.3服务器搭建与客户端整合SpringBoot以及踩坑笔记 cas服务器的搭建 导出证书(1和2步骤是找了课程,随便写了一下存记录,不过对于自己测试不投入使用应该不影响) C:\Users\D ...

  9. ApiPost进阶教程(1) — 在ApiPost中使用脚本

    什么是APIPOST脚本 APIPOST脚本是基于JavaScript语言的代码片段,可实现在接口请求或集合测试时添加动态行为. 脚本可实现的功能 测试(断言)请求返回结果的正确性(后置脚本). 动态 ...

  10. noip 模拟 6

    果然考试一多就改不过来了 考试经过 上来看题,T1似乎是一个计数题,但看见1e9的数据范围就觉得不可做,拿了20部分分匆忙跑路 T2是个图论题,不过一看统计种类就发现是自己不会的东西,瞄准30分冲了一 ...