前景:在开发学习阶段希望一些重复使用代码或者算法代码积累。能够在VS中下载安装方便使用。

准备工作

1.Nuget登录账号(可 Microsoft 账号)。Nuget官网

2.Nuget.exe程序。下载地址:https://www.nuget.org/downloads,下载 windows x86 Commandline。

3.需要发布的c#类库项目。

操作步骤

1.在VS解决方案下待发布的类库项目,Properties下AssemblyInfo.cs中设置类库的基本信息。如版本号之类。请将项目配置设置为“发布”并重新生成项目以生成更新的 DLL

2.将Nuget.exe执行目录设置为环境变量。方便在cmd中nuget直接使用。运行cmd CD到项目.csproj所在目录

3.生成初始化清单,使用 nuget spec 命令从项目生成初始 .nuspec 文件。 会在.csproj文件所在目录下生成TBW.Common.Lib4.nuspec文件。右键用记事本打开

nuget spec TBW.Common.Lib4.csproj

清单内容大致,修改version title authors owners copyright tags等节点的值:

<?xml version="1.0" encoding="utf-8"?>
<package >
<metadata>
<id>$id$</id>
<version>1.0.0</version>
<title>TBW.Common.Lib4</title>
<authors>TBW</authors>
<owners>TBW</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<license type="expression">MIT</license>
<projectUrl>http://project_url_here_or_delete_this_line/</projectUrl>
<iconUrl>http://icon_url_here_or_delete_this_line/</iconUrl>
<description>$description$</description>
<releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
<copyright>TBW 2020</copyright>
<tags>TBW Common Lib4</tags>
</metadata>
</package>

4.运行pack命令,发布类库包生成.nupkg文件。TBW.Common.Lib4.1.0.0.nupkg 文件格式为 项目名称+清单版本号.nupkg。可在同级文件夹找到。

nuget pack TBW.Common.Lib4.1.0.0.nupkg  或者 nuget pack TBW.Common.Lib4.1.0.0.nupkg  -Build -Properties Configuration=Release

5.上传pack包,等待大概30分钟构建包。即可在VS Nuget管理中搜索到。

另外一种 pack包的方式,通过nuget的api发布pack。

步骤一,登录nuget官网。在右上角用户中选择 “API Keys”

步骤二,选择“创建” ,提供密钥名称,选择“选择范围”>“推送” 。 输入“Glob 模式” *,然后选择“创建” 。

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

复制密钥截图:

步骤四,执行nuget push命令 发布pack。命令结构:

nuget push -Source [库的地址]  -ApiKey [库秘钥]  [待发布的nuget包位置]
nuget push TBW.Common.Lib4.1.0.1.nupkg 复制的密钥 -Source https://api.nuget.org/v3/index.json

更新nuget发布的pack,操作步骤如下:

1.更新需发布pack包项目的基本信息。编辑生成出来的.nupkg文件版本号。例如,TBW.Common.Lib4.1.0.1.nupkg文件名.

2.执行 nuget delete 删除旧版本pack。

nuget delete TBW.Common.Lib4 1.0.0 -Source https://api.nuget.org/v3/index.json -ApiKey 复制的密钥

3.登录nuget官网。upload上传新的.nupkg文件.即可。

或 上传方法二 使用nuget push命令,推送新包。

---------------------------------------------------发布更新包结束

其他常用cli命令:

nuget setApiKey 命令。此命令将 API 密钥存储在 NuGet 配置中,以便无需在同一台计算机上再次重复此步骤。

nuget setApiKey 复制的密钥
可直接执行推送pack
nuget push TBW.Common.Lib4.1.0.0.nupkg  -Source https://api.nuget.org/v3/index.json

关于nuget上manage packages 弃用包注意事项:

如果不再维护某个包,或者希望鼓励该包的使用者移到其他包,可将此包弃用。
如下所示,包弃用与取消列出包不同 :
1.取消列出包会阻止它的发现,因为包会在搜索列表中隐藏 。
2.而弃用包可让包的现有使用者了解其是否已在其项目中安装或使用此包 。 它还让使用者了解弃用原因以及你(包发布者)指定的备用推荐包。 弃用包后,包仍会列出。
作为包发布者,你可选择同时弃用和取消列出包。

C# 使用nuget.exe发布类库及更新类库的更多相关文章

  1. 【NET Core】Nuget包发布流程

    1.新建一个.NET Core类库 2.新增一个方法,并编译项目 3.下载Nuget.exe,与刚才新建的类库放在同一目录下 下载地址:https://www.nuget.org/downloads ...

  2. [经验分享]NuGet发布自己的Dll(类库包)

    什么是Nuget Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展.在使用Visual Studio开发基于.NET Framework的应用时,Nuget能把在项目中 ...

  3. 在nuget上发布自己的程序集教程

     前期准备 [1]注册nuget官网账号:注册地址:https://www.nuget.org/ [2]下载Nuget.exe文件:下载地址:https://www.nuget.org/downloa ...

  4. nuget.exe the application could not be started

    http://stackoverflow.com/questions/5730412/error-when-running-the-nuget-exe-command Ok, so this turn ...

  5. unable to locate nuget.exe

    今日使用vs 从github fork 一份代码到本地之后,提示项目 unable to locate nuget.exe. 原因:代码托管时未提交 nuget.exe 或其他原因丢失 解决方法:在解 ...

  6. Unable to locate \.nuget\NuGet.exe 问题解决办法之一(转)

    问题出现的原因是项目下.nuget文件夹下NuGet.exe文件夹不存在导致的 解决办法: 1.右键编辑NuGet.targets文件 将下载NuGet.exe的配置节点DownloadNuGetEx ...

  7. 关于windows下c++生成的exe发布时的依赖dll问题

    如同linux下通常要求安装特定版本的libstdc++一样,windows下vc++生成的exe发布时的依赖dll问题,可以参见帖子,http://bbs.csdn.net/topics/39105 ...

  8. Unable to locate \.nuget\NuGet.exe 问题解决办法之一

    问题出现的原因是项目下.nuget文件夹下NuGet.exe文件夹不存在导致的 解决办法: 1.右键编辑NuGet.targets文件 将下载NuGet.exe的配置节点DownloadNuGetEx ...

  9. ThinkPHP 3.2公共类库、应用类库ThinkPHP/Library讲解

    一.ThinkPHP的类库主要包括公共类库和应用类库,都是基于命名空间进行定义和扩展的.只要按照规范定义,都可以实现自动加载.        公共类库 公共类库通常是指ThinkPHP/Library ...

随机推荐

  1. Group_concat介绍与例子

    进公司做的第一个项目就是做一个订单追踪查询,里里外外连接了十一个表,作为公司菜鸡的我麻了爪. 其中有一个需求就是对于多行的数据在一行显示,原谅我才疏学浅 无奈下找到了项目组长  在那学来了这个利器 ( ...

  2. POJ 2251宽搜、

    因为这个题做了两次犯了两次不同的错误. 第一次用的dfs死活都超时 第二次把定义队列定义在了全局变量的位置,导致连WA了几次.最后找到原因的我真的想一巴掌拍死自己 #include<cstdio ...

  3. JavaScript:4个常见的内存泄露

    什么是内存泄漏 内存泄漏基本上就是不再被应用需要的内存,由于某种原因,没有被归还给操作系统或者进入可用内存池. 编程语言喜欢不同的管理内存方式.然而,一段确定的内存是否被使用是一个不可判断的问题.换句 ...

  4. window 系统下修改`CMD`的编码格式的方法,`CHCP` 的 使用

    CHCP的使用 CHCP是一个计算机指令,能够显示或设置活动代码页编号. 一般上是在命令提示框中使用,用来查询和修改命令提示框的编码格式 具体使用方法 查看活动代码页编号 方式1: >>& ...

  5. 如何在 centos 7.3 上安装 caffe 深度学习工具

    有好多朋友在安装 caffe 时遇到不少问题.(看文章的朋友希望关心一下我的创业项目趣智思成) 今天测试并整理一下安装过程.我是在阿里云上测试,选择centos 7.3 镜像. 先安装 epel 源 ...

  6. Git的使用--如何将本地项目上传到Github(两种简单、方便的方法..)

    https://blog.csdn.net/u014135752/article/details/79951802 总结:其实只需要进行下面几步就能把本地项目上传到Github 1.在本地创建一个版本 ...

  7. Java中的断言assert的用法

    Java陷阱之assert关键字 一.概述 在C和C++语言中都有assert关键,表示断言. 在Java中,同样也有assert关键字,表示断言,用法和含义都差不多. 二.语法 在Java中,ass ...

  8. vue组件之间通过query传递参数

    需求: 从 任务列表进入 任务详情 ,向详情页传递当前 mission_id 值 路由关系: //查看任务列表 { path: '/worklist', name: 'worklist', compo ...

  9. 用C++获取屏幕上某点的颜色

    假定坐标点 x=50,y=50. 输出 RGB 用 16 进制数.Afxwin.h 你建项目时可得.#include <Afxwin.h>#include <Windows.h> ...

  10. js实现bind

    Function.prototype.bind=function(ctx,...lastArgs){ let self=this return (...laterArgs)=>self.appl ...