首页 > 解决方案 > 如何将私有 nuget 源的凭据添加到 Azure DevOps Pipelines?

问题描述

所以我有一个如下所示的 Azure DevOps Pipelines:

在此处输入图像描述

所以目前,使用 NuGet 4.6.2,我可以使用服务端点添加我的凭据/PAT。现在正在工作。

但是,我坚持使用 NuGet 4.6.2。如果我升级到最新的 NuGet (5.8),那么我会在 NuGet 还原期间收到错误:

Unable to find version '<x.y.z>' of package '<my.object.package>'.
  C:\Users\VssAdministrator\.nuget\packages\: 
  Package '<my.object.package.x.y.z>' is not found on source 'C:\Users\VssAdministrator\.nuget\packages\'.
  https://api.nuget.org/v3/index.json: 
  Package '<my.object.package.x.y.z>' is not found on source 'https://<private.nuget.url>: Failed to fetch results from V2 feed at '
  Response status code does not indicate success: 401 (Unauthorized).)

我的猜测是,不知何故,我需要以不同的方式将凭据传递给私有 NuGet 提要(组织外部)——但不确定如何。或者我在这里遗漏了什么?

标签: azure-devopsnugetazure-pipelinesnuget-package-restore

解决方案


根据错误消息,我们可以知道它正在尝试访问您的私人 nuget 提要并收到此 401(未经授权)错误。您似乎没有在nuget.config文件中提供认证信息。

您可以尝试在您nuget.config的以下添加认证信息:

<configuration>
  <packageSources>
    <add key="keyName" value="privateFeedUrl" />
  </packageSources>
  <activePackageSource>
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>
  <packageSourceCredentials>
    <keyName>
      <add key="Username" value="%USER_VARIABLE%" />      
      <add key="ClearTextPassword" value="%PAT%" />
    </keyName>
  </packageSourceCredentials>
</configuration>

您可以参考此线程了解更多详细信息。


推荐阅读