Nuget恢复在Azure Devops上失败,并显示消息“无法加载源的服务索引". [英] Nuget restore fails on Azure Devops with message "unable to load the service index for source"

查看:72
本文介绍了Nuget恢复在Azure Devops上失败,并显示消息“无法加载源的服务索引".的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个运行在私有代理中的.NET解决方案的构建.该解决方案包含.NET Core 2.1和.NET Standard 2.0项目.

已安装的一些nuget软件包如下:

  • NETStandard.Library v2.0.3
  • Microsoft.AspNetCore.Mvc v2.0.0
  • Microsoft.NETCore.App v2.1.5

尝试还原带有以下错误的nuget软件包时,构建失败:

"F:\ Agent01 \ w \ 141 \ s \ xxxxxxx.sln"(还原目标)(1)->(还原目标)->C:\ Program Files \ dotnet \ sdk \ 2.1.500 \ NuGet.targets(114,5):错误:无法为源

这是构建代理中%appdata%\ NuGet \ nuget.config 文件的内容:

 <?xml version ="1.0" encoding ="utf-8"?><配置>< packageSources><添加key ="nuget.org" value ="https://api.nuget.org/v3/index.json"/><添加key ="MyFeed" value ="https://xxxxxxxxxx.pkgs.visualstudio.com/_packaging/xxxxxxxxxx/nuget/v3/index.json"/></packageSources>< packageSourceCredentials>< MyFeed>< add key ="Username" value ="LocalBuildAgent"/><添加key ="ClearTextPassword" value ="xxxxxxxxxxx"/></MyFeed></packageSourceCredentials></configuration> 

我已经检查了一些类似的问题,但到目前为止,我仍无法找到解决问题的方法.

一些注意事项:

  • 个人访问令牌未过期
  • 此特定版本在其他构建代理中成功运行
  • 至少有1个带有" nuget restore "任务的构建已使用此代理成功运行(常规的 nuget restore 任务,不是.NET Core)
  • 尝试重新启动构建代理,但未成功
  • 在还原前尝试

    更新2:

    我能够使用.NET Core任务v1还原软件包:

    恢复软件包

    或使用带有参数-force 的v2任务:

    恢复软件包

    解决方案

    我找到了解决方案-将以下程序包源添加到%appdata%\ NuGet \ nuget.config :

     <添加密钥="Microsoft Visual Studio脱机包" value ="C:\ Program Files(x86)\ Microsoft SDKs \ NuGetPackages \"/> 

    完整文件如下:

     <?xml version ="1.0" encoding ="utf-8"?><配置>< packageSources><添加key ="Microsoft Visual Studio脱机包" value ="C:\ Program Files(x86)\ Microsoft SDKs \ NuGetPackages \"/><添加key ="nuget.org" value ="https://api.nuget.org/v3/index.json"/><添加key ="MyFeed" value ="https://xxxxxxxxxx.pkgs.visualstudio.com/_packaging/xxxxxxxxxx/nuget/v3/index.json"/></packageSources>< packageSourceCredentials>< MyFeed>< add key ="Username" value ="LocalBuildAgent"/><添加key ="ClearTextPassword" value ="xxxxxxxxxxx"/></MyFeed></packageSourceCredentials></configuration> 

    也请检查 .NET SDK 500中的回归:"dotnet工具安装"失败并显示为401(未经授权)在NuGet.config#7524 中有私有供稿.此问题似乎是由.NET SDK 2.1.500引起的.

    另一种解决方法是卸载该版本:

    .NET Core SDK 2.1.400中不存在此问题,例如它消失了卸载.NET Core SDK 2.1.500时,并在出现SDK时重新出现再次安装2.1.500.

    I have a build for a .NET solution that is running in a private agent. The solution contains both .NET Core 2.1 and .NET Standard 2.0 projects.

    Some of the nuget packages installed are the following:

    • NETStandard.Library v2.0.3
    • Microsoft.AspNetCore.Mvc v2.0.0
    • Microsoft.NETCore.App v2.1.5

    The build fails when trying to restore the nuget packages with the following error:

    "F:\Agent01\w\141\s\xxxxxxx.sln" (Restore target) (1) -> (Restore target) -> C:\Program Files\dotnet\sdk\2.1.500\NuGet.targets(114,5): error : Unable to load the service index for source https://xxxxxxxxxx.pkgs.visualstudio.com/_packaging/xxxxxxxxxx/nuget/v3/index.json. C:\Program Files\dotnet\sdk\2.1.500\NuGet.targets(114,5): error : Response status code does not indicate success: 401 (Unauthorized).

    Build task is the following:

    This is the content of %appdata%\NuGet\nuget.config file in the build agent:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <packageSources>
        <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
        <add key="MyFeed" value="https://xxxxxxxxxx.pkgs.visualstudio.com/_packaging/xxxxxxxxxx/nuget/v3/index.json" />
      </packageSources>
      <packageSourceCredentials>
        <MyFeed>
          <add key="Username" value="LocalBuildAgent" />
          <add key="ClearTextPassword" value="xxxxxxxxxxx" />
        </MyFeed>
      </packageSourceCredentials>
    </configuration>
    

    I already checked a few similar questions but so far I wasn't able to find a solution for my problem.

    Some notes:

    • Personal Access Token is NOT expired
    • This particular build runs successfully in other build agents
    • There is at least 1 build with a "nuget restore" task that was run successfully using this agent (regular nuget restore task, NOT .NET Core)
    • Tried restarting the build agent, without success
    • Tried specifying a specific version of nuget before the restore, without success
    • .NET Core SDK latest version in the build agent is 2.1.500 (multiple versions installed)

    What am I missing? How to fix this issue? Why can't I restore the packages using the dotnet restore command?

    UPDATE:

    Packages are restored without errors when using the old Nuget Restore task as follows:

    UPDATE 2:

    I am able to restore the packages using the .NET Core task v1:

    Or using v2 task with argument --force:

    解决方案

    I found a solution - add the following package source to %appdata%\NuGet\nuget.config:

    <add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" />
    

    Complete file looks like this:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <packageSources>
        <add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" />
        <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
        <add key="MyFeed" value="https://xxxxxxxxxx.pkgs.visualstudio.com/_packaging/xxxxxxxxxx/nuget/v3/index.json" />
      </packageSources>
      <packageSourceCredentials>
        <MyFeed>
          <add key="Username" value="LocalBuildAgent" />
          <add key="ClearTextPassword" value="xxxxxxxxxxx" />
        </MyFeed>
      </packageSourceCredentials>
    </configuration>
    

    Also, check Regression in .NET SDK 500: 'dotnet tool install' fails with 401 (Unauthorized) when there is a private feed in NuGet.config #7524. This problem seems to be caused by .NET SDK 2.1.500.

    Another workaround would be to uninstall that version:

    The issue is not present in .NET Core SDK 2.1.400, e.g. it goes away when .NET Core SDK 2.1.500 is uninstalled, and reappears when SDK 2.1.500 is installed again.

    这篇关于Nuget恢复在Azure Devops上失败,并显示消息“无法加载源的服务索引".的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆