Пакет NuGet пытается получить из всех настроенных источников NuGet

При установке пакетов NuGet из диспетчера пакетов NuGet с настроенными несколькими источниками пакетов NuGet в VS2017 клиент NuGet пытается получить пакет из всех настроенных источников NuGet и возвращает сообщение типа «Не найдено».

Например:

Я настроил следующие источники NuGet в моем NuGet.Config,

Доступные источники NuGet

Я попытался восстановить пакет NuGet Newtonsoft.Json из командной строки с помощью команды «nuget restore». Клиент NuGet будет пытаться получить пакет NuGet Newtonsoft.Json из моего настраиваемого канала NuGet, который не содержит пакет NuGet Newtonsoft.Json, и вернуть в выходных данных сообщение пакета NuGet NotFound. Пожалуйста, проверьте журнал ниже,

https://drive.google.com/open?id=0BzTG_S7tpcnoTVBKSGRQUVBsTzQ

Ошибка "Не найдено"

Однако пакет восстанавливается без проблем. Но почему пакет ищет все настроенные источники и выводит ошибку «Не найдено», даже если она обнаружена в первом источнике NuGet.

Мой вопрос,

Почему клиент NuGet пытается получить из всех источников конфигурации? Это ошибка NuGet? Я использовал Visual Studio 2017 (15.4) и диспетчер пакетов NuGet (4.4.0).

Кто-нибудь предлагает решение по этому поводу.

Заранее спасибо,


person user2473950    schedule 27.10.2017    source источник
comment
хм выглядит странно, попробуйте установить с помощью диспетчера пакетов nuget вместо использования команды   -  person Venkatesh Konatham    schedule 27.10.2017
comment
@VenkateshKonatham - Спасибо за обновление. Это кажется правильным, но нам нужно автоматизировать это на нашем сервере сборки. Итак, мы спросили о восстановлении командной строки.   -  person user2473950    schedule 27.10.2017
comment
хм, это странное поведение, на вашем сервере, если у вас есть визуальная студия, тогда перестройка проекта загрузит его. Если он этого не делает, вы можете сделать одно: удалить пакет и переустановить его из окна nuget, затем взять последнюю версию на сервере, а затем проверить ее   -  person Venkatesh Konatham    schedule 27.10.2017
comment
@VenkateshKonatham - Спасибо. Этот запрос не связан с установкой / восстановлением пакета. Это связано с тем, почему пакеты искали все настроенные источники пакетов и вернули ошибку 404.   -  person user2473950    schedule 30.10.2017


Ответы (1)


РЕДАКТИРОВАТЬ: Недавно я узнал, что некоторые детали в моем первоначальном ответе были неправильными. Я отредактировал свой ответ ниже, хотя основной ответ тот же.

Нет, это не ошибка.

Когда клиент NuGet выполняет восстановление и видит, что у вас есть зависимость от какого-либо пакета, он не может узнать, в каком канале существует пакет. Раньше клиент NuGet запрашивал каждый источник по порядку, но в какой-то момент он был изменен для одновременного запроса всех источников и использования первого успешного ответа.

Также существует несколько сценариев, в которых вы хотите получить пакет, доступный на nuget.org, из источника, отличного от nuget.org. Один из примеров: у вас может быть частный канал с часто используемыми пакетами в той же сети, что и ваши серверы сборки, чтобы восстановление пакета происходило как можно быстрее и более устойчиво к сбоям в сети.

person zivkan    schedule 02.04.2018