"Не удалось найти версию" во время сборки TFS 2015 при восстановлении пакетов NuGet

У меня возникли проблемы с восстановлением пакета NuGet во время сборки TFS 2015.

Так как некоторые пакеты требуют NuGet 3.X client, я настроил новую скриптовую сборку для использования пользовательского местоположения NuGet, где я разместил исполняемый файл Командная Строка NuGet 3.х бета.

всякий раз, когда я запускаю сборку, все пакеты не могут быть восстановлены и NuGet бросает "не удается найти версию..." ошибка:

Unable to find version '1.1.10' of package 'Microsoft.Bcl'.
Unable to find version '4.0.10' of package 'System.Threading'.
Unable to find version '1.1.37' of package 'System.Collections.Immutable'.
Unable to find version '1.0.0' of package 'Owin'.
Unable to find version '4.1.0' of package 'NLog'.
Unable to find version '7.0.1' of package 'Newtonsoft.Json'.
Unable to find version '2.0.1' of package 'MongoDB.Driver.Core'.
Unable to find version '2.0.1' of package 'MongoDB.Driver'.
Unable to find version '2.0.1' of package 'MongoDB.Bson'.
Unable to find version '3.0.1' of package 'Microsoft.Owin.Security.OAuth'.

...и даже больше пакеты. Я считаю, что вопрос ясен.

когда я создаю одно и то же решение на компьютере сборки с помощью Visual Studio, все пакеты восстанавливаются успешно.

Как это решить?

3 ответов


в моем случае проблема заключалась в том, что user-wide NuGet.config расположенном в C:\Users\[User name]\AppData\Roaming\NuGet\NuGet.config (где [User name] пользователь, который запускает службу Windows агента сборки) указывал на NuGet API v2 в то время как моя сборка уже использует Командная Строка NuGet 3.x.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <!-- CHANGING V2 TO V3 IN THE URI VALUE SOLVED THE ISSUE! -->
    <add key="nuget.org" value="https://www.nuget.org/api/v3/" />
  </packageSources>
</configuration> 

в моем случае Nuget.Config, было:

C:\Windows\ServiceProfiles\NetworkService\AppData\Roaming\NuGet

так что ищите Nuget.Config в своем C:\.

пользователь зависит от учетной записи, которую вы настроили Agent


Если по какой-то причине обновление NuGet.config в перемещаемой папке нет опции или нежелательной, также можно добавить файл конфигурации в корень решения.

по документам:

  • проект конкретного NuGet.Файлы конфигурации, расположенные в любой папке от папки решения до корня диска. Они позволяют управлять параметрами, применяемыми к проекту или группе проектов.
  • NuGet, специфичный для решения.Конфигурационный файл, расположенный в .папка nuget в решении. Настройки в этом файле применяются только к пакетам решений и поддерживаются только в NuGet 3.3 и более ранних версиях. он игнорируется для NuGet 3.4 и более поздних.

расположение файлов конфигурации и использование