网站首页 > 编程文章 正文
前言
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 密钥
- 登录您的 nuget.org 帐户或创建一个帐户(如果您还没有)。有关创建帐户的更多信息,请参阅个人帐户。
- 选择您的用户名(在右上角),然后选择API Keys。
- 选择Create,为您的密钥提供一个名称,选择Select Scopes > Push。为Glob 模式输入 * ,然后选择Create。(有关范围的更多信息,请参见下文。)
- 创建密钥后,选择复制以在 CLI 中检索您需要的访问密钥:
- 重要提示:将您的密钥保存在安全位置,因为您以后无法再次复制该密钥。如果返回 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与刚才新建的类库放在同一目录下。
配置发布信息,并将发布路径指向或拷贝到与刚才新建的类库放在同一目录下。
或者 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包,然后调用得到下面内容
欢迎点赞+转发+关注!大家的支持是我分享最大的动力!!!
猜你喜欢
- 2024-10-10 git秘钥问题解析及gitlab配置(git密钥在哪个文件夹)
- 2024-10-10 PyIDM开源高速引擎Internet下载管理器,搬运工福利
- 2024-10-10 python安装weditor失败, error: subprocess-exited-with-error
- 2024-10-10 自动化测试基础:pycharm如何关联git对GitHub进行代码管理?
- 2024-10-10 git搭建以及使用,搭建github远程仓库
- 2024-10-10 一款运行于windows上的linux命令神器-Cmder(已经爱不释手)
- 2024-10-10 .NetCore+git+IIS+Jenkins的CI/CD
- 2024-10-10 巧妙利用代码托管平台gitee,再也不用担心找不到Java项目
- 2024-10-10 这个40M的小工具助你在windows下处理数据如虎添翼
- 2024-10-10 新手快速上手Git与小乌龟(git小乌龟怎么合并代码)
你 发表评论:
欢迎- 05-09Spring Boot3 RESTful 接口参数校验,这篇吃透就够了!
- 05-09《Spring6》第02节:基于XML方式搭建Spring6框架开发环境
- 05-09MapStruct架构设计(mapstruct @mapping)
- 05-09分布式微服务架构组件(分布式微服务架构设计)
- 05-09Java Swing组件下的JButton实例(java swing 组件)
- 05-09java基础都在这了,小主们拿去吧(java基础是指什么)
- 05-09AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 05-09【Spring Boot】WebSocket 的 6 种集成方式
- 最近发表
-
- Spring Boot3 RESTful 接口参数校验,这篇吃透就够了!
- 《Spring6》第02节:基于XML方式搭建Spring6框架开发环境
- MapStruct架构设计(mapstruct @mapping)
- 分布式微服务架构组件(分布式微服务架构设计)
- Java Swing组件下的JButton实例(java swing 组件)
- java基础都在这了,小主们拿去吧(java基础是指什么)
- AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 【Spring Boot】WebSocket 的 6 种集成方式
- Java 中五种最常见加密算法:原理、应用与代码实现
- 用注解进行参数校验,spring validation介绍、使用、实现原理分析
- 标签列表
-
- spire.doc (59)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)