【问题标题】:How to consume Private Package Feed in Azure DevOps?如何在 Azure DevOps 中使用 Private Package Feed?
【发布时间】:2026-01-25 00:35:01
【问题描述】:

我在 Azure DevOps 上有一个私有包,由 API 项目使用。

为此,我在此 API 项目中有以下内容:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <clear />
    <add key="nuget" value="https://api.nuget.org/v3/index.json" />
    <add key="mypack" value="https://pkgs.dev.azure.com/org/_packaging/mypack/nuget/v3/index.json" />
  </packageSources>
  <packageSourceCredentials>
    <mypack>
      <add key="Username" value="EmailUserInDevOps" />
      <add key="ClearTextPassword" value="TokenFromDevOps" />
    </mypack>
  </packageSourceCredentials>
</configuration>

它在我的开发机器上运行良好...

但我也想使用 DevOps 构建 API 项目。

为此,我将 DevOps 连接到 API 项目所在的 Github 存储库。

但是在这个存储库中我没有 Nuget.config 文件。

我没有它可以不将我的密码暴露给 mypack 提要。

我该如何解决这个问题?

【问题讨论】:

    标签: azure-devops nuget


    【解决方案1】:

    将 NuGet 还原步骤添加到您的构建并将其指向工件源。

    - task: NuGetCommand@2
      displayName: 'NuGet restore'
      inputs:
        command: 'restore'
        restoreSolution: '$(Build.SourcesDirectory)/WhateverProject.sln'
        feedsToUse: 'select'
        vstsFeed: 'feed guid'
        includeNuGetOrg: true
    

    不需要额外的身份验证,因为它是在已经通过您的工件提要进行身份验证的服务的上下文中运行的。

    【讨论】:

    • 我已经有了这样的步骤,但我的 azure-pipelines.yml 在 GitHub 存储库上。所以我放在那里的凭据暴露在 Github 存储库中。
    • @MiguelMoura 您不需要输入凭据。我已经更新了我的答案。
    • vstsFeed 中的 Feed Guid 是什么意思?我尝试使用提要名称和提要网址,但它们都不起作用。
    • @MiguelMoura 我的意思正是我所说的:提要的 GUID。它是唯一标识符,而不是 URL 或名称。我发现获得它的最简单方法是使用可视化设计器并单击“查看 YAML”按钮,或使用 REST API 检索提要信息。
    • 只是为了更新,vstsFeed 现在应该是提要名称而不是提要 guid。我认为这是 Azure DevOps 的一个相对较新的更新。
    最近更新 更多