如何将私有 nuget feed 的凭据添加到 Azure DevOps Pipelines 中?

问题描述 投票:0回答:3

所以我有一个如下所示的 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-devops nuget azure-pipelines nuget-package-restore
3个回答
5
投票

根据错误消息,我们可以知道它正在尝试访问您的私人 nuget feed 并收到此 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>

您可以参考此主题了解更多详细信息。


0
投票

将您的凭据添加到

Nuget.Config
应该可以,唯一的区别是
Nuget.Config
文件的格式对于较新版本的 nuget 略有更改,请参阅此 link 查看如何正确格式化 nuget.config 文件。


-3
投票

您还可以使用 Windows 凭据管理器,这是一种更安全的存储凭据的方式。

更多来源

  • 在 VS2017 中重置 NuGet 凭据
  • Nuget 包源不提示输入凭据
  • 为什么 Visual Studio 2022 在 NuGet 包还原期间不再提示我输入凭据?
© www.soinside.com 2019 - 2024. All rights reserved.