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

时间:2017-10-17 16:16:27

标签: nuget azure-devops azure-pipelines

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

NuGet task screenshot

但是当我运行构建时,我在构建日志中得到以下内容,并且对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中,那么一切正常。

1 个答案:

答案 0 :(得分:0)

由于nuget包Feed位于内部服务器中,因此您应使用可以访问网址private build agent http://repo1:8081/artifactory/api/nuget/nuget-repos/Packages

执行NuGet还原任务时,有两个选项可以添加nuget feed凭据:

选项1:使用

时使用nuget服务端点

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

enter image description here

选项2:在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服务端点的情况下进行构建。

注意: