VSTS:nuget.exe失败,返回码:1包无法恢复

时间:2017-08-10 23:12:29

标签: visual-studio nuget azure-devops visual-studio-2017 nuget-package-restore

我是Visual Studio 2017的新手,并尝试使用Visual Studio Team Services进行构建。我收到以下错误:

System.AggregateException: One or more errors occurred. ---> NuGet.Protocol.Core.Types.FatalProtocolException: Failed to retrieve information about 'Microsoft.AspNetCore' from remote source 'http://nuget.ohyeah.net/api/v2/FindPackagesById()?id='Microsoft.AspNetCore''. ---> System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: The remote name could not be resolved: 'nuget.ohyeah.net'

我正在谷歌上搜索,以确保我知道为什么会发生这个错误,但没有运气。可以在此处找到示例堆栈跟踪:https://pastebin.com/RiGmd7Cd

可能是什么原因,是因为Nuget.Config中的一些设置?它看起来完全如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <activePackageSource>
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>
  <disabledPackageSources />
  <packageSources>
    <add key="3rdparty" value="http://nuget.XXX.net/api/v2/" />
    <add key="official" value="http://nuget.XXX.net/api/v2/" />
      <add key="vsts-official" value="https://XXXXXX.pkgs.visualstudio.com/_packaging/Official/nuget/v3/index.json" />
    <!--<add key="local" value="C:\inetpub\wwwroot\Packages" />-->
    <add key="microsoft" value="https://www.nuget.org/api/v2/curated-feeds/microsoftdotnet/" />
    <add key="nuget.org" value="" />
  </packageSources>
</configuration>

我坚持这一点,任何帮助都将受到高度赞赏。

3 个答案:

答案 0 :(得分:2)

首先,检查nuget.ohyeah.net可以从构建代理访问。

其次,您需要检查Nuget.config文件是否https://api.nuget.org/v3/index.json在包源中,如果不添加它:

<packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  </packageSources>
  1. 项目根文件夹(如果它存在于。
  2. 如果您在NuGet Restore任务中指定了Nuget配置文件
  3. 在构建代理上构建服务用户文件夹(%appdata%\ Nuget)
  4. BTW,你提供的代码不是Nuget.Config,而是NuGet包文件。

答案 1 :(得分:1)

看起来您在某处配置了包源。在VSTS或Nuget.Config中。根据日志,您有自定义来源&#39; http://nuget.ohyeah.net/&#39;这不是一个有效的nuget feed。如果您有关于配置的更多详细信息,则可以更轻松地提供帮助。

答案 2 :(得分:1)

问题是混合了旧的TFS xml格式化资源和json格式化的VSTS资源。因此,在这个特殊问题中,VSTS将始终在json文件中寻找匹配的id以匹配nuget包,然后VSTS将尝试检索nuget包。如果您有旧的TFS nuget存储库,则必须在json文件中创建一个条目。在我的例子中,我不得不从Nuget.Config中删除旧的TFS packageSources,如http://nuget.XXX.net/api/v2/。此外,您需要在新的json文件中创建有效的@id@type字典条目,在我的情况下,它是:https://XXXXXX.pkgs.visualstudio.com/_packaging/Official/nuget/v3/index.json。现在,工作版本如下所示:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <activePackageSource>
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>
  <disabledPackageSources />
  <packageSources>
      <add key="vsts-official" value="https://XXXXXX.pkgs.visualstudio.com/_packaging/Official/nuget/v3/index.json" />
    <add key="microsoft" value="https://www.nuget.org/api/v2/curated-feeds/microsoftdotnet/" />
    <add key="nuget.org" value="" />
  </packageSources>
</configuration>