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

Диспетчер пакетов nuget не синхронизирован

Я на Nuget 2.5.4. Функция "Управление пакетами для всего решения" для установки обновлений периодически показывает "ложные срабатывания".

По ложному утверждению я имею в виду указание на то, что что-то в решении нуждается в обновлении, но каждый проект в решении уже находится на последнем обновлении. По крайней мере, я думаю, это то, что происходит.

Например (см. ниже), nuget предлагает помочь установить NUnit, но каждый пакет неактивен. Тест-проекты должны быть серыми, так как они уже находятся на последней версии.

Пакеты без NUnit также недоступны, и я думаю, что их не должно быть, поэтому диспетчер решений может их установить. Поэтому не уверен, что моя ложноположительная теория верна, но что-то не синхронизировано.

Что такое исправление?

Приветствия,

enter image description here

enter image description here

4b9b3361

Ответ 1

Из вывода Process Monitor кажется, что обновления для решения широко определяются на основе содержимого папки Packages, которая находится под корнем решения:

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

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

Ответ 2

Перейдите непосредственно в физический каталог пакетов для решения, например C:\projects\\packages.

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

Ответ 3

Мой исходный элемент управления иногда блокирует файлы конфигурации, так что мои web.config и packages.config иногда не синхронизируются после обновления NuGet.

Окно output, которое обычно отображает события сборки, покажет, что обычно не так с обновлением/установкой NuGet.

Большую часть времени освобождая readonly в конфигурационных файлах, затем выполнение другого обновления исправляет файлы конфигурации. Если это не сработает, мне нужно удалить и переустановить некоторые пакеты.

Изменить: В зависимости от типа вашего проекта у вас может не быть файла web.config, а не все пакеты записывать в настройки конфигурации приложения.

Ответ 4

Много позже, но упоминание в случае, если кто-то еще приходит. Запуск NuGet 2.8.x, я столкнулся с такой же проблемой с графическим интерфейсом менеджера пакетов (перейдите в консоль для обновления, и в нем указывается каждый пакет последним).

Чтобы решить проблему, я очистил каталог пакетов проектов (за исключением, конечно, файла repositories.config), который, в свою очередь, показал, что существует конфликт версий NuGet: в корне моего решения каталог .nuget содержал устаревший NuGet.Exe. Я удалил каталог .nuget, перестроил его, и теперь мы снова рады (все пакеты загружены и в пакетах только пакеты с обновлениями отображаются).

Ответ 5

Решение для меня заключалось в закрытии Visual Studio и удалении всего содержимого из папки /packages. Вы также можете удалить все подпапки из /packages, которые перечислены в списке обновлений NuGet, которые являются ложными срабатываниями.