Подтвердить что ты не робот

Nuget Restore через сервер сборки "невозможно найти версию"

У меня есть решение VS и как часть TeamCity Build, мы восстанавливаем пакеты как из личного фида NuGet (myget), так и из общего канала (nuget.org). Большинство пакетов восстанавливаются нормально, но они зависают на приведенных ниже для WebApi и Mono.Security. Все это работает локально в Visual Studio.

[restore] NuGet command: C:\TeamCity\buildAgent\plugins\nuget-agent\bin\JetBrains.TeamCity.NuGetRunner.exe C:\TeamCity\buildAgent\tools\NuGet.CommandLine.DEFAULT.nupkg\tools\NuGet.exe restore C:\TeamCity\buildAgent\work\953bd084b49f7d88\DataFinch.Web.sln -Source https://www.myget.org/F/datafinch/auth/<hidden>/api/v2 -Source https://api.nuget.org/v3/index.json
[11:41:35][restore] Starting: C:\TeamCity\buildAgent\temp\agentTmp\custom_script473789219385667038.cmd
[11:41:35][restore] in directory: C:\TeamCity\buildAgent\work\953bd084b49f7d88
[11:41:35][restore] JetBrains TeamCity NuGet Runner 8.0.37059.9
[11:41:35][restore] Registered additional extensions from paths: C:\TeamCity\buildAgent\plugins\nuget-agent\bin\plugins-2.8
[11:41:35][restore] Starting NuGet.exe 2.8.50926.602 from C:\TeamCity\buildAgent\tools\NuGet.CommandLine.DEFAULT.nupkg\tools\NuGet.exe
[11:41:43][restore] Unable to find version '5.2.3' of package 'Microsoft.AspNet.WebApi.Client'.
[11:41:43][restore] Unable to find version '5.2.3' of package 'Microsoft.AspNet.WebApi.Core'.
[11:41:43][restore] Unable to find version '3.2.3.0' of package 'Mono.Security'.
[11:41:43][restore] Unable to find version '6.0.4' of package 'Newtonsoft.Json'.
[11:41:43][restore] Process exited with code 1

Конфигурация Teamcity: введите описание изображения здесь

4b9b3361

Ответ 2

Причина сбоя сборки - старая версия nuget.exe. Я, наконец, решил эту проблему, загрузив последнюю версию и поместив ее в папку Program Files x86. Затем я создал новую систему, чтобы указать на этот исполняемый файл. После этого я добавляю пакет NuGetInstaller в моем определении сборки TFS, чтобы настроить TFS с помощью этого нового файла NuGet.exe.  Эта ссылка помогла мне позволить TFS использовать эту новую версию NuGet

Ответ 3

Я последовал за этим: https://blogs.msdn.microsoft.com/tfssetup/2017/04/18/tfs-2017-update-1-nuget-restore-task-always-fails-trying-to-find-packages-even-though-they-exist-on-the-feed/

Я пробовал 3.3 и получил эту ошибку:

Восстановление пакета NuGet Microsoft.AspNet.WebPages.3.2.3. ВНИМАНИЕ: Не удается найти версию "3.5.0.2" пакета "Antlr".

Я загрузил последнюю версию NuGet 4.3.0.4406 и установил пользовательский путь к NuGet, и это тоже не удалось.

Удивительно, когда я переключился на 3.5, это сработало.

введите описание изображения здесь

Если вы действительно застряли, запустите команду в командной строке и она будет работать:

C:\Program Files (x86)\NuGet\nuget.exe restore -NonInteractive E:\agentXYZPool\_work\1\s\xyz.sln

Ответ 4

Я столкнулся с этой проблемой с одним из наших подчиненных устройств, использующих TFS и Visual Studio.

Как я исправил это, я открыл решение, которое не компилировалось в Visual Studio, щелкнуло правой кнопкой мыши на SLN и выбрало "Включить восстановление пакетов NuGet"

Это вызывает диалоговое окно, которое вы должны принять. После того, как вы это сделаете, вам будет хорошо. Щелкните правой кнопкой мыши на SLN и запустите "Восстановить пакеты NuGet", и если эта операция завершится успешно, вы будете золотыми.

Вероятно, некоторые настройки, которые вы можете настроить программно при настройке подчиненных сред, но это один из способов прямого устранения этой проблемы.

Ответ 5

Согласно НАСТОЯЩЕМУ документу на момент написания этой статьи MS, правильный URL-адрес: https://api.nuget.org/v3/index.json

Поэтому я решил исправить эту проблему, потому что предположил, что это не имеет никакого отношения к URL. Я сделал 2 вещи, не уверен, что именно это решило проблему, но я опубликую оба здесь на случай, если это кому-то поможет.

  • В TFS2018 и на моем этапе сборки для установки Nuget я указал версию 4.9.3 (причина, по которой я выбрал 4.9.3, потому что я заметил, просматривая подробный журнал VS, что во время моей сборки он использовал эту версию), и решил всегда скачать последнюю версию.

  • Второе, что я сделал, я удалил файл Nuget.Config из своего проекта, который остался от того, что я тестировал. Затем я повторно внес изменения в TFS

После того, как я выполнил оба вышеупомянутых шага, остальная часть моей сборки начала работать.