如何将私有NuGet源的凭据添加到Azure DevOps流水线?

4
所以我有一个类似这样的 Azure DevOps 管道:

enter image description here

目前,使用NuGet 4.6.2版本,我可以通过服务终端添加我的凭据/PAT。这一功能已经实现。

但是,我无法升级到最新的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 feed(组织外部)- 但我不确定该如何做。或者我可能在这里错过了什么?

3个回答

5
根据错误信息,我们可以知道它正在尝试访问您的私有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>

你可以参考这个主题获取更多详细信息。

我尝试过了 - 但是我得到了相同的错误。其次,我真的不想把我的凭据放在 nuget.config 文件中(这将在 GitHub 上) - 非常不安全。是否还有其他方法,比如使用可行的服务终结点或任何其他方式?还有人在使用私人/外部组织提要吗? - Johannes Setiabudi
将私有 feed 添加到 packageSources 并设置 packageSourceCredentials 也不起作用吗?通常这应该是有效的。 - Hugh Lin
我有同样的问题。你最后解决了吗? - gumby
不,我没有升级 - 我现在仍然坚持使用4.6.2版本。 - Johannes Setiabudi
谢谢你,我的朋友,你救了我的命 @HughLin - Malik Haseeb
显示剩余3条评论

0
将您的凭据添加到 Nuget.Config 应该可以正常工作,唯一的区别是针对较新版本的 nuget,Nuget.Config 文件的格式略有改变,请参考此 link 以了解如何正确格式化您的 nuget.config 文件。

-3

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

enter image description here


这似乎与尝试为 Azure DevOps 管道配置凭据无关。 - Austin_G
1
@Austin_G 如果你将域名和用户名/密码添加到Windows凭据管理器中,它就可以正常工作,而且你的用户名/密码将是安全的。这就是我所做的。请解释一下这与问题无关的地方在哪里? - Kelly Elton
@KellyElton,你的回答是否特指私有构建代理? - Rock
1
@Rock 不,它对任何一种都适用。 - Kelly Elton
@KellyElton 所以你声称设置一个存储在本地机器上的Windows凭据,会以某种神奇的方式传输到Microsoft托管的构建服务器上? - undefined
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接