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.