将 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. 选择授予对所有管道的访问权限复选框,完成后选择保存

发布包

注释

如果使用的是 Ubuntu 24.04 或更高版本,则必须将 NuGetAuthenticate 任务与 .NET CLI 配合使用,而不是 NuGetCommand@2 任务。 有关详细信息,请参阅支持较新的 Ubuntu 托管映像

  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 上已发布包的屏幕截图。