文档章节

nuget.org 发布自己的程序包

产品哥
 产品哥
发布于 2018/11/08 10:23
字数 1185
阅读 13
收藏 0

安装 nuget

在 https://docs.microsoft.com/zh-cn/nuget/install-nuget-client-tools 选择 nuget.exe 安装。

下载下来是一个 nuget.exe 不可直接运行,随意放在一个目录,在环境变量 Path 中配置路径。

安装好了 CMD 中可以使用 >: nuget 命令结果是这样的:

C:\Users\bdzy>nuget
NuGet Version: 4.7.1.5393
usage: NuGet <command> [args] [options]
Type 'NuGet help <command>' for help on a specific command.

Available commands:

 add         Adds the given package to a hierarchical source. http sources are not supported. For more info, goto https
             ://docs.nuget.org/consume/command-line-reference#add-command.

 config      获取或设置 NuGet 配置值。

 delete      从服务器中删除程序包。

 help (?)    显示一般帮助信息,以及有关其他命令的帮助信息。

 init        Adds all the packages from the <srcPackageSourcePath> to the hierarchical <destPackageSourcePath>. http fe
             eds are not supported. For more info, goto https://docs.nuget.org/consume/command-line-reference#init-comm
             and.

 install     使用指定的源安装程序包。如果未指定源,则将使用 NuGet 配置文件中定义的所有源。如果配置文件未指定源,则使用默认的 NuGet 源。

 list        显示给定源中的程序包列表。如果未指定源,则使用 %AppData%\NuGet\NuGet.config 中定义的所有源。如果 NuGet.config 未指定源,则使用默认 NuGet 源。

 locals      Clears or lists local NuGet resources such as http requests cache, temp cache or machine-wide global packa
             ges folder.

 pack        基于指定的 nuspec 或项目文件创建 NuGet 程序包。

 push        将程序包推送到服务器并进行发布。
             通过加载 %AppData%\NuGet\NuGet.config,然后加载从驱动器的根目录开始到当前目录为止的任何 nuget.config 或 .nuget\nuget.config 来获取 NuGet 的默
             认配置。

 restore     还原 NuGet 程序包。

 setApiKey   保存给定服务器 URL 所对应的 API 密钥。如果未提供 URL,则保存 NuGet 库的 API 密钥。

 sign        Signs a NuGet package with the specified certificate.

 sources     可以管理位于 %AppData%\NuGet\NuGet.config 的源列表

 spec        为新程序包生成 nuspec。如果此命令在项目文件(.csproj、.vbproj、.fsproj)所在的文件夹中运行,则它将创建已标记化的 nuspec 文件。

 update      将程序包更新到最新的可用版本。此命令还更新 NuGet.exe 本身。

 verify      Verifies a signed NuGet package.

有关详细信息,请访问 http://docs.nuget.org/docs/reference/command-line-reference

 

本地制作 nuget 包(测试)

1、新建一个 类库项目 (.NET Framework),命名为 “Test01”

2、在 "Test01" 项目里面建 "Logger.cs" 类文件,里面随便写一个 log 方法

 public class Logger
    {
        public void Log(string text)
        {
            Console.WriteLine(text);
        }
    }

3、重新生成项目(确保项目的 bin/debug 下面有生成项目的 dll )

 

生成项目清单(nuget.org 上所需的信息)

1、到项目的根目录下(含 .csproj 项目文件的目录)[以下操作均在项目目录下操作]

2、执行产生清单文件 nuspec 文件

nuget spec test01.csproj

会在目录里面产生一个 test01.nuspec 清单文件(xml 格式)

3、编辑 test01.nuspec 清单文件

<?xml version="1.0"?>
<package >
  <metadata>
    <id>[公司团队缩写].test01 (nuget 安装包的名称如:EntityFramework)</id>
    <version>1.1</version> (版本使用 1.1,如果是兼容版本,使用 (1.0,2.0))
    <title>$title</title>
    <authors>$[作者]$</authors>
    <owners>$author$</owners>
    <licenseUrl>http://[开源协议的url地址]</licenseUrl>
    <projectUrl>http://项目地址</projectUrl>
    <iconUrl>http://图标地址(64*64)</iconUrl>
    <requireLicenseAcceptance>false【bool: 是否提示同意协议使用】</requireLicenseAcceptance>
    <description>$描述项目的信息$</description>
    <releaseNotes>[备注项目信息和描述一样一样的]</releaseNotes>
    <copyright>Copyright 2018</copyright>
    <tags>Tag1 Tag2 [标签检索用的]</tags>
  </metadata>
</package>

清单配置可选和必选项,必读 https://docs.microsoft.com/zh-cn/nuget/reference/nuspec#optional-metadata-elements

4、清单配置好了,保存文件

 

生成 .nupkg 文件

.nupkg 文件,就是用于发布到 nuget.org 的文件

nuget pack

NuGet 以 identifier-version.nupkg 形式生成 .nupkg 文件,你可在当前文件夹中找到该文件。

 

发布 nupkg 包到 nuget.org 

注意: nuget API KEY 申请在下面

nuget push test01.1.0.nupkg [nuget API KEY] -Source https://api.nuget.org/v3/index.json

nuget.exe 会显示发布过程的结果:

Pushing AppLogger.1.0.0.nupkg to 'https://www.nuget.org/api/v2/package'...
    PUT https://www.nuget.org/api/v2/package/
    Created https://www.nuget.org/api/v2/package/ 6829ms
Your package was pushed.

表示发布成功了。一般等待30分钟所有就可以用 清单文件配置的 ID [公司团队缩写].test01 在 nuget.org 搜索得到啦!

 

 

申请 nuget API KEY

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

  2. 选择用户名(在右上角),然后选择“API 密钥”。

  3. 选择“创建”,提供密钥名称,选择“选择范围”>“推送”。 在“API 密钥”下,输入“Glob 模式”*,然后选择“创建”。 (请参阅下面有关范围的详细信息。)

  4. 创建密钥后,选择“复制”,检索需要在 CLI 中使用的访问密钥:

    将 API 密钥复制到剪贴板

 

© 著作权归作者所有

产品哥
粉丝 79
博文 161
码字总数 190936
作品 1
杭州
CTO(技术副总裁)
私信 提问
如何编写.NET Core Global Tools (附两个案例)

一.什么是 .NET Core Global Tools 2018年5月31日(北京时间)微软发布了 .NET Core 2.1 正式版,.NET Core 2.1 为我们带来了一个新的特性:.NET Core Global Tools。用过NodeJs的人一定对N...

晓晨Master
2018/06/04
0
0
Nuget(BagGet)使用教程

Nuget(BagGet)使用教程 1. 服务器安装ASP.NET Core 网上有很多教程,不多讲,链接给你:https://www.cnblogs.com/Agui520/p/8331499.html 只需要安装SDK和Runtime即可。安装成功在命令窗口...

HANS许
2018/12/03
0
0
使用Nexus搭建私有Nuget仓库

前言   Nuget是ASP .NET Gallery的一员,是免费、开源的包管理工具,专注于在.Net / .Net Core应用开发过程中第三方组件库的管理,相对于传统单纯的dll引用要方便、科学得多。其中nuget.o...

dotNET跨平台
2018/06/25
0
0
Nuget 通过 dotnet 命令行发布

版权声明:博客已迁移到 http://lindexi.gitee.io 欢迎访问。如果当前博客图片看不到,请到 http://lindexi.gitee.io 访问博客。本文地址 https://blog.csdn.net/lindexi_gd/article/details...

lindexi_gd
2018/10/19
0
0
项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦)

知道了 csproj 文件中的一些常用 NuGet 属性,创建 NuGet 包时就可以充分发挥新 Sdk 自动生成 NuGet 包的优势,不需要 nuspec 文件啦。(毕竟 nuspec 文件没有 .csproj 和 .targets 文件强大...

wpwalter
2018/05/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java框架学习日志-13(Mybatis基本概念和简单的例子)

在mybatis初次学习Mybatis的时候,遇到了很多问题,虽然阿里云的视频有教学,但是视频教学所使用的软件和我自己使用的软件不用,我自己用的数据库是oracle数据库,开发环境是idea。而且视频中...

白话
今天
3
0
Java基础:String、StringBuffer和StringBuilder的区别

1 String String:字符串常量,字符串长度不可变。Java中String是immutable(不可变)的。 String类的包含如下定义: /** The value is used for character storage. */private final cha...

watermelon11
今天
2
0
mogodb服务

部署MongoDB 官网: https://www.mongodb.com/download-center/community 创建mongo数据目录 mkdir /data/mongodb 二进制部署 wget -c https://fastdl.mongodb.org/linux/mongodb-linux-x8......

以谁为师
昨天
5
0
大神教你Debian GNU/Linux 9.7 “Stretch” Live和安装镜像开放下载

Debian项目团队于昨天发布了Debian GNU/Linux 9 "Stretch" 的第7个维护版本更新,重点修复了APT软件管理器中存在的安全漏洞。在敦促每位用户尽快升级系统的同时,Debian团队还发布了Debian ...

linux-tao
昨天
4
0
PHP 相关配置

1. php-fpm的pool 编辑php-fpm配置文件php-fpm.con vim /usr/local/php/etc/php-fpm.conf //在[global]部分增加以下内容 include = etc/php-fpm.d/*.conf # 相当与Nginx的虚拟主机文件 “vho......

Yue_Chen
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部