使用 Azure Pipelines 将 NuGet 包发布到 NuGet.org

通过使用 Azure Pipelines,开发人员可以简化将其 NuGet 包发布到源和公共注册表的过程。 本教程介绍如何利用 YAML 和经典管道将 NuGet 包发布到 NuGet.org。在本文中,你将学习如何:

  • 通过 NuGet.org 进行身份验证。
  • 创建服务连接。
  • 将包发布到 NuGet.Org。

先决条件

创建 API 密钥

  1. 导航到 NuGet.org 并登录到帐户。

  2. 选择用户名图标,然后选择“API 密钥”。

  3. 选择“创建”,然后提供密钥的名称。 将“推送新包和包版本”范围分配给你的密钥,并在“Glob 模式”字段中输入 * 以包含所有包。

  4. 完成操作后,选择“创建”

  5. 选择“复制”并将 API 密钥保存在安全位置。

创建服务连接

  1. 登录到 Azure DevOps 组织 https://dev.azure.com/<Your_Organization>,并导航到你的项目。

  2. 选择齿轮图标位于页面左下角的项目设置

  3. 依次选择“NuGet”和“下一步”。

  4. 选择“ApiKey”作为身份验证方法,并将“源 URL”设置为以下:https://api.nuget.org/v3/index.json

  5. 在“ApiKey”字段中输入前面生成的 ApiKey,然后为服务连接提供名称。

  6. 选中“授予对所有管道的访问权限”复选框,完成后选择“保存”。 需要服务连接管理员角色才能选择此选项。

发布包

  1. 登录到 Azure DevOps 组织 https://dev.azure.com/<Your_Organization>,并导航到你的项目。

  2. 选择“管道”,然后选择你的管道。 选择“编辑”以编辑管道。

  1. 选择 + 以添加新任务,然后搜索“.NET Core”任务。 选择“添加”将其添加到管道。

  2. 从命令的下拉菜单中选择 pack 命令,然后选择“要打包的 csproj 或 nuspec 文件的路径”。 你可以根据具体方案保留其他字段的默认值。

    屏幕截图显示如何在经典管道中配置 .Net 包任务。

  3. 选择 + 以添加新任务,然后搜索“NuGet”任务。 选择“添加”将其添加到管道。

  4. 从命令的下拉菜单中选择 push 命令,然后选择“要发布的 NuGet 包的路径”。

  5. 选择“外部 NuGet 服务器”作为“目标源位置”。 然后,在“NuGet 服务器”字段中,选择之前创建的服务连接。

    屏幕截图显示如何将 NuGet 推送任务配置为外部 NuGet 服务器。

完成后,可以访问 nuget.org 上的“包”页面,在该页面顶部可找到最近发布的包。

屏幕截图显示 nuget.org 中已发布的包。