Как удалить пакеты NuGet, на которые не ссылается какой-либо проект в моем решении?

Как-то во время обновления до VS2012 и .NET 4.5 мне удалось запутать NuGet. Есть пакеты, которые отображаются в диспетчере пакетов (и папке пакетов), которые я не могу удалить (я считаю, что это устаревшие пакеты ASP.NET NuGet, которые были заменены новыми именами пакетов с новой версией. У каждого из них есть только Управление кнопкой - но не кнопка удаления. И когда вы посмотрите, где они используются, вы можете видеть, что на них не ссылаются ни один из проектов решений: они отображаются НЕ Удалить?

Ответ 1

Вы можете использовать консоль диспетчера пакетов с командой: Uninstall-Package PackageId, чтобы удалить его, или просто удалить папку пакета из папки "packages" в папке с решением. Более подробную информацию о консоли диспетчера пакетов вы можете найти здесь: http://docs.nuget.org/docs/reference/package-manager-console-powershell-reference

Ответ 2

Я нашел обходное решение для этого.

  • Включить восстановление и автоматическую проверку пакетов (Options/Package Manager/General)
  • Удалить все содержимое папки пакетов (в Корзину, если вы нервничаете!)
  • Управление пакетами Nuget для решения
  • Нажмите кнопку восстановления.

NuGet будет восстанавливать только пакеты, используемые в вашем решении. В итоге вы получаете хороший, оптимизированный набор пакетов.

Ответ 3

Сначала откройте консоль диспетчера пакетов. Затем выберите свой проект из выпадающего списка. И запустите следующие команды для удаления пакетов nuget.

Get-Package

для получения всего пакета, который вы установили.

а затем

Uninstall-Package PagedList.Mvc

--- для удаления пакета с именем PagedList.MVC

Сообщение

PM> Uninstall-Package PagedList.Mvc
Successfully removed 'PagedList.Mvc 4.5.0.0' from MCEMRBPP.PIR.

Ответ 4

Если вы хотите удалить/удалить пакет Nuget, который применяется к нескольким проектам в ваших решениях, перейдите по ссылке:

  • Инструменты- > Диспетчер пакетов Nuget → Управление пакетами Nuget для решения

  • В левом столбце, где "Установленные пакеты", выберите "Все", чтобы вы см. список установленных пакетов и кнопку "Управление" через них.

  • Выберите кнопку "Управление", и вы получите всплывающее окно, снимите флажок напротив имени проекта и нажмите "ОК"

Остальная часть работы Менеджер пакетов сделает это за вас.

Ответ 5

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

Надлежащий деинсталлятор необходим здесь.

Ответ 6

Один пакет NuGet может ссылаться на другой пакет NuGet. Поэтому, пожалуйста, будьте очень осторожны с зависимостями между пакетами. Я просто удалил пакет карты Google, а затем удалил базовые пакеты, такие как Newtonsoft, Entity Framework и т.д.

Таким образом, удаление определенного пакета из папки с пакетами вручную будет безопаснее.

Ответ 7

Если вы удалили пакет с помощью утилиты Uninstall-Package и удалили нужный пакет из каталога пакетов в разделе Solution (и вы все еще получаете ошибку), просто откройте файл *.csproj в редакторе кода и удалите тег вручную. Как, например, я хотел избавиться от пакета Nuget Xamarin.Forms.Alias и удалил эти строки из файла *.csproj.

Removing nuget package from msbuild script

И, наконец, не забудьте перезагрузить ваш проект после появления запроса в Visual Studio (после изменения файла проекта). Я попробовал это на Visual Studio 2015, но он должен работать и на Visual Studio 2010 и далее.

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

Ответ 8

Другой способ, и очень просто для меня:

  • Перейдите к своему Soution, а затем щелкните по нему правой кнопкой мыши.

  • Выберите параметр "Управляемые пакеты NUgets для решения". Чтобы открыть всплывающее окно, нажмите кнопку "Настройки". Это откроет другое всплывающее окно, а затем выполнит поиск: "Менеджер пакетов".

  • Внутри опции "Менеджер пакетов" у вас есть еще две опции (I. General II. Packages Sources). В каждой опции снимите флажок.

Эти шаги деактивируют NuGet из вашего проекта.

Надеюсь, вам действительно помогут.