2015-09-07 4 views
16

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

Поскольку некоторые пакеты требуют 3.x клиента NuGet, я настроен новая скриптовая сборка использует пользовательское местоположение NuGet, где я разместил исполняемый файл NuGet Command-Line 3.x beta.

Всякий раз, когда я бегу сборки, все пакеты не могут быть восстановлены и 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, все пакеты восстанавливаются успешно.

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

+0

Вы установили какой-либо из пакетов Microsoft.CodeAnalysis NuGet?Я сделал, и я начал получать эти ошибки, когда я удалил все из них, и он снова начал работать. – Schenz

+0

@Schenz У меня нет этого пакета NuGet –

ответ

21

В моем случае проблема в том, что пользователь по всей NuGet.config расположен в C:\Users\[User name]\AppData\Roaming\NuGet\NuGet.config (где [User name] является пользователь, который работает служба Windows Билд агента) указывал на NuGet API v2 while my build is already using NuGet Command-Line 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> 
+0

У меня была аналогичная проблема, но только при попытке установить пакет через консоль диспетчера пакетов; Диалог диспетчера пакетов работал нормально. Этот ответ указал мне в правильном направлении: это был URL-адрес источника пакета. В моем случае URL-адрес в Nuget.config сказал «https://www.nuget.org/api/v2/». Когда я удалил «www», чтобы сменить его на «https://nuget.org/api/v2/», он работал. –

+5

https://www.nuget.org/api/v3/ - Это место не существует (https://api.nuget.org/v3/index.json делает) ... и два указанных здесь ключа оба имеют одинаковый идентификатор («nuget.org») – CJBS

+0

В моем случае 3-я версия была указана в конфигурации. Я только что удалил все содержимое файла конфигурации, и это помогло: David

3

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

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

Так искать Nuget.Config в вашем C:\.

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

-1

Убедитесь, что источник пакет проверяется ...

Перейти в меню Сервис -> Менеджер NuGet Пакет -> Настройки Диспетчер пакетов

Затем нажмите «Источники пакетов» и убедитесь, что пакет проверен.

enter image description here

+1

, но мы говорим о TFS Build –

+0

Are все пакеты проверяются в TFS? – Zenacity

+0

Yup !!!!!!!!!!!! –

1

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

Согласно документации:

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

Config file locations and uses

+0

Nice дополнение. Похоже, что проблема имеет много обходных решений/решений в зависимости от конкретного случая! –