VSTS无法加载源401的服务索引

时间:2018-06-20 01:48:58

标签: c# nuget azure-devops azure-pipelines nuget-package-restore

我知道其他有关相同签名的帖子。经过他们之后,我仍然无法解决我的问题。

我的团队使用VSTS的构建定义进行持续集成。 enter image description here

此构建定义可以正常运行,直到持续拉动请求为止。 在Nuget Restore期间,我遇到了以下错误msg

  

2018-06-20T00:37:27.6438127Z System.AggregateException:发生一个或多个错误。 ---> NuGet.Protocol.Core.Types.FatalProtocolException:无法加载源https://microsoft.pkgs.visualstudio.com/_packaging/CBT/nuget/v3/index.json的服务索引。 ---> System.Net.Http.HttpRequestException:响应状态代码未指示成功:401(未授权)。

我在nuget.config中确实有https://microsoft.pkgs.visualstudio.com/_packaging/CBT/nuget/v3/index.json,并且在失败的PR的nuget.config中没有没有任何改变

我可以使用VS2017在本地计算机上成功获取还原并成功构建整个解决方案。 PR中唯一相关的更改是,它不使用package.config,而是使用packagereference获取nuget程序包。我尝试回到使用package.config的状态,但构建仍会失败,并显示相同的错误消息。

谢谢。

3 个答案:

答案 0 :(得分:0)

您可以在指定的nuget.config文件中使用credentail(PAT或备用证书)更新VSTS feed。

例如:

nuget sources update -Name "vstsfeed" -Source https://microsoft.pkgs.visualstudio.com/_packaging/CBT/nuget/v3/index.json -Username "Alternate username" -Password "alternate password" -configfile /path/to/nuget.config

然后,您可以提交nuget.config文件的更改并推送到VSTS存储库。然后再次构建以检查其是否有效。

答案 1 :(得分:0)

您可以使用已接受的答案中所示的命令-此外,也可以将供稿添加到存储库根目录中的nuget.config文件中

注意,这显示了如何为自定义供稿添加供稿名称中带有空格的自定义供稿的凭据:My Nuget Artifacts

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageRestore>
    <!-- Allow NuGet to download missing packages -->
    <add key="enabled" value="True" />
    <!-- Automatically check for missing packages during build in Visual Studio -->
    <add key="automatic" value="True" />
  </packageRestore>
  <packageSources>
    <add key="NuGet official package source" value="https://api.nuget.org/v3/index.json" />
    <add key="My Nuget Artifacts" value="https://pkgs.dev.azure.com/ConsotoOrg/_packaging/Consoto/nuget/v3/index.json" />
  </packageSources>
  <packageSourceCredentials>
    <My_x0020_NuGet_x0020_Artifacts>
      <add key="Username" value="justme" />
      <add key="ClearTextPassword" value="xyzyoqyvslyfs1t1khru6wd33gebujhpr9moocbujfhv8ukxtxyz" />
    </My_x0020_NuGet_x0020_Artifacts>
  </packageSourceCredentials>
  <activePackageSource>
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>
  <!--
        Used to specify trusted signers to allow during signature verification.
        See: nuget.exe help trusted-signers
    -->
  <trustedSigners>
    <author name="microsoft">
      <certificate fingerprint="3F9001EA83C560D712C24CF213C3D312CB3BFF51EE89435D3430BD06B5D0EECE" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
    </author>
    <repository name="nuget.org" serviceIndex="https://api.nuget.org/v3/index.json">
      <certificate fingerprint="0E5F38F57DC1BCC806D8494F4F90FBCEDD988B46760709CBEEC6F4219AA6157D" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
      <owners>microsoft;aspnet;nuget</owners>
    </repository>
  </trustedSigners>
</configuration>

FWIW-最近几天,我发现我可以通过从配置中删除trustedSigners部分来清除一些NuGet还原错误

答案 2 :(得分:0)

这不是 OP 的问题,但我在这里添加了一条注释,因为我在搜索相同的错误消息时发现了这个问题。

在我们的例子中,我们正在为 Azure DevOps 构建一个 .net 5 应用程序。我们必须使用 NuGet 工具安装程序升级到较新版本的 NuGet。然后使用带有恢复命令的 .Net Core 任务恢复工作得很好。