Nuget не обновляет ссылки на проекты

Недавно я перенес все проекты Visual Studio 2013 в Visual Studio 2015 и выполнил шаги, описанные в этой статье от Nuget, чтобы убедиться, что автоматический восстановление пакета все еще работает, короче

  • Я удалил файлы Nuget.exe и Nuget.target из исходного элемента управления и диска
  • Я обновил все файлы проекта и удалил разделы, связанные с Nuget

У меня возникла проблема при обновлении пакетов Nuget, это не обновление ссылок на проект, чтобы указать на новейшие версии dll. Я вижу, что были установлены новейшие пакеты. Эта проблема также не связана с конкретными пакетами.

У кого-нибудь еще была такая проблема?

Ответ 1

Мы поняли, что некоторые из наших младших разработчиков установили в решении только необходимые пакеты Nuget для ОДНОГО проекта, а затем добавили ссылки на требуемые dll для всех других проектов, перейдя к физическому расположению dll на диске. Это, очевидно, вызвало проблему, потому что только ОДИН из проектов в решении содержал записи для пакетов Nuget в его файле packages.config, в то время как остальные проекты в решении не содержали ни одного.

Когда все пакеты были обновлены с помощью команды Update-Package, только ОДИН проект, содержащий записи в этом файле packages.config, был обновлен с правильными ссылками проекта.

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

Ответ 2

Восстановление пакета NuGet не изменяет файлы проекта. Он просто загружает и извлекает пакеты NuGet в каталог пакетов.

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

Update-Package -reinstall

Что будет удалять и устанавливать пакеты снова и обновлять ссылки на проект.

Ответ 3

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

Шаги:

  • перейти или запустить функцию быстрого запуска.
  • тип диспетчера пакетов
  • выберите "tools- > Nuget PackageManager- > Настройки диспетчера пакетов"
  • В появившемся окне параметров. нажмите "Очистить все кэширование нуджетов".
  • Щелкните правой кнопкой мыши и выберите "Восстановить пакеты Nuget".

Надеюсь, что это поможет.

Ответ 4

Что-то, что я только что заметил, и я не уверен, поможет ли это вам или кому-либо еще, читающему это, но эта проблема буквально поразила мой мозг. Проблема заключалась в том, что я устанавливал пакеты, созданные мной, с помощью NuGet Package Explorer в Windows.

Оказалось, что после обновления NuGet Package Explorer он больше не помещает библиотеки DLL, которые я включил в папку lib. Как только я начал вручную добавлять папку lib обратно в пакет в Package Explorer, а затем загружать ее в NuGet и переустанавливать в потребляющем проекте, эта ссылка снова начнет появляться.

Я не уверен, что вызвало такое поведение - это могло быть моей собственной ошибкой, но я буквально только что понял это - и, следовательно, должен вернуться и заново сделать целую кучу блага пакета NuGet, которое я сделал за прошедший месяц УЧ.

Надеюсь, это спасет кого-то хотя бы от унции боли.

Ответ 5

Я столкнулся с проблемой с пакетом NuGet Newtonsoft.Json, как показано ниже:

enter image description here

Я испробовал все возможные решения, но ни одно из нижеприведенных не сработало:

  • Чистящий раствор
  • Восстановление решения
  • Очистка кэша пакетов NuGet

Наконец я понял, что это как-то связано с версией .NET Framework, на которую ориентирован мой проект на С#. Кажется, было какое-то несоответствие. В тот момент, когда я обновил версию моего проекта .NET Framework до последней, зависимость пакета Newtonsoft.Json и его ссылка мгновенно ожили.

Ответ 6

Ничто из вышеперечисленного не помогло мне.

Что сработало, так это редактирование файла проекта напрямую и удаление существующей ссылки. Когда я перезагрузил проект, пакет появился в ссылках как пакет Nuget.