C# 使用nuget.exe发布类库及更新类库
前景:在开发学习阶段希望一些重复使用代码或者算法代码积累。能够在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.而弃用包可让包的现有使用者了解其是否已在其项目中安装或使用此包 。 它还让使用者了解弃用原因以及你(包发布者)指定的备用推荐包。 弃用包后,包仍会列出。
作为包发布者,你可选择同时弃用和取消列出包。