我在VSTS中使用内置的nuget任务来执行包恢复。我们的feed托管在内部Artifactory服务器上,并在我的nuget.config中作为包源引用。然后,我在VSTS中使用nuget服务端点来存储凭据以访问该Feed。
但是当我运行构建时,我在构建日志中得到以下内容,并且对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中,那么一切正常。
答案 0 :(得分:0)
由于nuget包Feed位于内部服务器中,因此您应使用可以访问网址private build agent的 http://repo1:8081/artifactory/api/nuget/nuget-repos/Packages 。
执行NuGet还原任务时,有两个选项可以添加nuget feed凭据:
您可以使用基本身份验证添加Nuget端点。输入提要网址,用户名和密码后,请在保存前验证连接。
nuget.config
文件在您的本地仓库中,您可以将certntical添加到项目级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服务端点的情况下进行构建。
注意:
nuget-repos/Package
,因此您应使用http://repo1:8081/artifactory/api/nuget/nuget-repos/Packages作为供稿网址(而不是http://repo1:8081/artifactory/api/nuget/nuget-repos)。