将 NuGet 包发布到 NuGet.org(经典/YAML)

通过使用 Azure Pipelines,开发人员可以简化将其 NuGet 包发布到源和公共注册表的过程。 本文将指导你完成将 NuGet 包发布到 NuGet.org。

先决条件

产品 要求
Azure DevOps - Azure DevOps 项目
- 权限:
    - 若要授予对项目中所有管道的访问权限,你必须是 项目管理员组的成员。
    - 若要创建服务连接,你必须具有服务连接管理员创建者角色。
NuGet.org - NuGet 帐户。

创建 API 密钥

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

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

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

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

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

创建服务连接

  1. 登录到 Azure DevOps 组织,然后导航到项目。

  2. 在页面左下角,选择齿轮图标项目设置

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

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

  5. 输入之前在 ApiKey 字段中创建的 ApiKey,并为服务连接提供名称。

  6. 选择授予对所有管道的访问权限复选框,完成后选择保存

发布包

  1. 登录到 Azure DevOps 组织,然后导航到项目。

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

  3. 将以下代码片段添加到 YAML 管道。 将占位符替换为前面创建的服务连接的名称:

    steps:
    - task: DotNetCoreCLI@2
      displayName: 'dotnet pack'
      inputs:
        command: pack
    - task: NuGetCommand@2
      displayName: 'NuGet push'
      inputs:
        command: push
        nuGetFeedType: external
        publishFeedCredentials: <NAME_OF_YOUR_SERVICE_CONNECTION>
    

管道成功完成后,请导航到 NuGet.org 上的页面,你将在顶部找到最近发布的包。

显示 NuGet.org 上已发布包的屏幕截图。