1

我是Visual Studio 2017中的新成員,並試圖使用Visual Studio Team Services進行構建。我收到以下錯誤:VSTS:nuget.exe失敗,返回碼:1包失敗恢復

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' 

我google搜索,以確保我知道爲什麼正是這個錯誤發生,但還沒有運氣。示例堆棧跟蹤可以在這裏找到: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> 

我被困在此,任何幫助將不勝感激。

回答

0

問題在於混合舊的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> 
1

它看起來像是你在某處配置了一個軟件包源。無論是在VSTS或Nuget.Config。根據日誌,您有一個自定義源'http://nuget.ohyeah.net/',它不是有效的nuget源。如果你有關於你的配置的更多細節,這將更容易協助。

1

首先,檢查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如果你的NuGet指定恢復任務
  3. 打造服務用戶文件夾中生成代理(%APPDATA%\的NuGet)
文件

順便說一句,你提供的代碼不是Nuget.Config,它是NuGet包文件。

+0

oops,我更新了Nuget.Config文件。那麼,你認爲nuget.org應該是packageSources中的第一個嗎?我的意思是有沒有任何命令或只是添加此條目應該足夠好? –

+0

其實,問題是vsts無法處理像http://nuget.XXX.net/api/v2/這樣的任何典型的api句柄。它特別需要一個json條目。 –

+0

@SharifMamun首先,沒有訂單,如果在以前的來源中找不到,它將從其他來源檢索包。其次,nuget.org的價值是空的,如果您將值設置爲https://api.nuget.org/v3/index.json,結果如何?另一方面,你的意思是什麼vsts不能處理XXX? –