如何在 VSTS nuget 还原中指定外部 nuget 源的凭据

2024-01-28

我正在使用 VSTS 中内置的 nuget 任务来执行包恢复。我们的提要托管在内部 Artifactory 服务器上,并在我的 nuget.config 中作为包源进行引用。然后,我使用 VSTS 中的 nuget 服务端点来存储访问该源的凭据。

但是,当我运行构建时,我会在构建日志中看到以下内容,并且对 nuget feed 的每个请求都会导致 401 Unauthorized。

CredentialProvider.TeamBuild: URI Prefixes:
CredentialProvider.TeamBuild:     https://ukipo.visualstudio.com/
CredentialProvider.TeamBuild:     https://ukipo.pkgs.visualstudio.com/
CredentialProvider.TeamBuild: URI: http://repo1:8081/artifactory/api/nuget/nuget-repos
CredentialProvider.TeamBuild: Is retry: False
CredentialProvider.TeamBuild: Matched prefix: 
CredentialProvider.TeamBuild: This provider only handles URIs from the build's Team Project Collection

Unauthorized http://repo1:8081/artifactory/api/nuget/nuget-repos/Packages(Id='Microsoft.AspNet.Razor',Version='3.2.3') 16ms
WARNING: Unable to find version '3.2.3' of package 'Microsoft.AspNet.Razor'.
  http://repo1:8081/artifactory/api/nuget/nuget-repos: The V2 feed at 'http://repo1:8081/artifactory/api/nuget/nuget-repos/Packages(Id='Microsoft.AspNet.Razor',Version='3.2.3')' returned an unexpected status code '401 Unauthorized'.

我还需要配置其他任何内容才能获取在服务端点中获取凭据的任务吗?如果我只是把它们作为packageSourceCredentials在 nuget.config 中,一切正常。


由于 nuget 包源位于内部服务器中,因此您应该使用私人建筑代理 https://learn.microsoft.com/en-us/vsts/build-release/actions/agents/v2-windows可以访问该URLhttp://repo1:8081/artifactory/api/nuget/nuget-repos/Packages http://repo1:8081/artifactory/api/nuget/nuget-repos/Packages.

当您执行 NuGet 恢复任务时,有两个选项可以添加 nuget feed 凭据:

选项1:使用您所使用的nuget服务端点

您可以使用基本身份验证添加 Nuget 端点。输入 feed URL、用户名和密码后,请在保存前验证连接。

选项2:在您的nuget.config file

在本地存储库中,您可以将凭据添加到项目级别nuget.config文件如下命令:

nuget sources add -name "nuget-repos" -source "http://repo1:8081/artifactory/api/nuget/nuget-repos/Packages" -username "username" -password "password" -ConfigFile path\to\project\.nuget\nuget.config

然后,您可以将更改提交并推送(签入)到远程存储库,并在不指定 nuget 服务端点的情况下进行构建。

Note:

  • 由于包裹似乎位于nuget-repos/Package,你应该使用http://repo1:8081/artifactory/api/nuget/nuget-repos/Packages http://repo1:8081/artifactory/api/nuget/nuget-repos/Packages作为提要 URL(不是http://repo1:8081/artifactory/api/nuget/nuget-repos http://repo1:8081/artifactory/api/nuget/nuget-repos).
  • 除了 401 错误消息外,还有一条警告,显示未找到 Microsoft.AspNet.Razor 3.2.3 包。因此,还请检查您的 Feed 中是否存在该包。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 VSTS nuget 还原中指定外部 nuget 源的凭据 的相关文章

随机推荐