Ответ 1
Попробуйте использовать https://www.nuget.org/api/v2
вместо https://api.nuget.org/v3/index.json
для документов nuget: https://docs.nuget.org/consume/Command-Line-Reference.
У меня есть решение 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
Попробуйте использовать https://www.nuget.org/api/v2
вместо https://api.nuget.org/v3/index.json
для документов nuget: https://docs.nuget.org/consume/Command-Line-Reference.
Причина сбоя сборки - старая версия nuget.exe. Я, наконец, решил эту проблему, загрузив последнюю версию и поместив ее в папку Program Files x86. Затем я создал новую систему, чтобы указать на этот исполняемый файл. После этого я добавляю пакет NuGetInstaller в моем определении сборки TFS, чтобы настроить TFS с помощью этого нового файла NuGet.exe. Эта ссылка помогла мне позволить TFS использовать эту новую версию NuGet
Я последовал за этим: 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
Я столкнулся с этой проблемой с одним из наших подчиненных устройств, использующих TFS и Visual Studio.
Как я исправил это, я открыл решение, которое не компилировалось в Visual Studio, щелкнуло правой кнопкой мыши на SLN и выбрало "Включить восстановление пакетов NuGet"
Это вызывает диалоговое окно, которое вы должны принять. После того, как вы это сделаете, вам будет хорошо. Щелкните правой кнопкой мыши на SLN и запустите "Восстановить пакеты NuGet", и если эта операция завершится успешно, вы будете золотыми.
Вероятно, некоторые настройки, которые вы можете настроить программно при настройке подчиненных сред, но это один из способов прямого устранения этой проблемы.
Согласно НАСТОЯЩЕМУ документу на момент написания этой статьи MS, правильный URL-адрес: https://api.nuget.org/v3/index.json
Поэтому я решил исправить эту проблему, потому что предположил, что это не имеет никакого отношения к URL. Я сделал 2 вещи, не уверен, что именно это решило проблему, но я опубликую оба здесь на случай, если это кому-то поможет.
В TFS2018 и на моем этапе сборки для установки Nuget я указал версию 4.9.3 (причина, по которой я выбрал 4.9.3, потому что я заметил, просматривая подробный журнал VS, что во время моей сборки он использовал эту версию), и решил всегда скачать последнюю версию.
Второе, что я сделал, я удалил файл Nuget.Config из своего проекта, который остался от того, что я тестировал. Затем я повторно внес изменения в TFS
После того, как я выполнил оба вышеупомянутых шага, остальная часть моей сборки начала работать.