Проблема с удалением пакетов NuGet - PullRequest
15 голосов
/ 07 июля 2011

Я пытаюсь удалить некоторые пакеты, установленные NuGet.Согласно документу, описанному здесь , я должен увидеть кнопку Uninstall (первый скриншот ниже), когда я выбираю установленный пакет.Однако я вижу только кнопку Управление (второй снимок экрана ниже).Может кто-нибудь подскажите, пожалуйста, как удалить пакеты?

NuGet Doc Screenshot

My Screenshot

Ответы [ 6 ]

13 голосов
/ 07 июля 2011

Наконец, я обнаружил, что мне пришлось вручную отредактировать файл решения .sln и удалить эти строки:

GlobalSection(ExtensibilityGlobals) = postSolution
        EnterpriseLibraryConfigurationToolBinariesPath = packages\Unity.2.1.505.0\lib\NET35;packages\Unity.Interception.2.1.505.0\lib\NET35;packages\EnterpriseLibrary.Common.5.0.505.0\lib\NET35;packages\EnterpriseLibrary.Data.5.0.505.0\lib\NET35
EndGlobalSection

После удаления вышеуказанных строк в файле решения эти пакеты исчезли на странице «Установленные пакеты» окна NuGet Packages. Остался только один пакет, и теперь я вижу кнопку «Удалить».

enter image description here

EDIT: Мне также пришлось удалить папку пакетов в моем каталоге решений.

13 голосов
/ 07 июля 2011

Если вы прокрутите вниз до раздела Управление установленными пакетами на странице документации NuGet, на которую вы ссылаетесь, вы увидите кнопку Управление и объяснение.

В NuGet 1.4 была представлена ​​новая функция, позволяющая выбрать решение в обозревателе решений и добавить / удалить пакеты из нескольких проектов за один шаг.Ранее вам приходилось выбирать каждый проект в обозревателе решений и добавлять / удалять пакет из каждого проекта по одному.

Если вы нажмете кнопку «Управление», откроется диалоговое окно «Выбор проектов», в котором можно отменить выбор проектов.что вы хотите удалить пакет NuGet.

enter image description here

Если вы выбираете проект вместо решения в обозревателе решений, вы можете добавлять / удалять пакеты из этого выбранного проекта.В этом случае вы увидите только кнопки «Установить» и «Удалить».

8 голосов
/ 06 июня 2013

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

Когда это происходит, единственным способомДеинсталляция пакетов - это принудительное удаление, и это можно сделать только через Консоль диспетчера пакетов.

Перед тем, как перейти на консоль, откройте окно Управление пакетами NuGet и запишите идентификатор и версиюваш пакет, который появляется на правой панели при нажатии на пакет.

Затем вы можете закрыть окно Управление, открыть консоль (Консоль диспетчера пакетов) и выполнить команду:

uninstall-package -Id YourPackageId -Force -Version YourPackageVersion

Обратите внимание на параметр -Force .Например,

uninstall-package -Id Unity -Force -Version 3.0.1304.0

Эта команда позволяет удалить версию 3, если она установлена ​​параллельно с версией 2, что невозможно сделать через окно управления.

3 голосов
/ 28 апреля 2016

У меня недавно были похожие проблемы. Мой проект работал нормально, но я не мог больше добавлять или удалять пакеты с помощью диспетчера пакетов NuGet, потому что EnterpriseLibrary 5.0.505 был показан как отсутствующий из источника Но попытка восстановить или удалить его не удалась с ошибкой «невозможно найти версию 5.0.505 пакета EnterpriseLibrary».

Я проследил это до наличия следующей ссылки в файле packages.config:

<package id="EnterpriseLibrary" version="5.0.505" targetFramework="net4" />

Сравнивая это с другими решениями, к которым я недавно добавил пакет, я изменил его на следующее, что устранило проблему:

<package id="EnterpriseLibrary.Common" version="5.0.505.0" targetFramework="net4" />

Я никогда не редактировал файлы package.config вручную, поэтому не знаю, как произошло несоответствие. Может быть, ссылка изменилась с самого начала, включая пакет без обновления файла конфигурации ...?

0 голосов
/ 10 июня 2013

После использования диалогового окна VS IDE Управление пакетами NuGet или Консоли диспетчера пакетов может потребоваться вручную удалить файлы решения или другие файлы в файловой системе, которые являются частью пакета, но не находятся в папке пакетов.

Я оценивал пакет Microsoft.AspNet.FriendlyUrls, который добавил главную страницу, пользовательский элемент управления, файл кода класса и файл packages.config в проект / решение моего веб-приложения ASP.NET.Я сделал ошибку, чтобы вручную отменить / удалить эти файлы из решения, прежде чем использовать диалог пакетов NuGet для удаления пакета.В этот момент все запуталось.

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

0 голосов
/ 13 мая 2013

У меня была проблема с удалением Code first lib CTP5, у которого были зависимости, удаление не возвращало никаких сообщений и ничего не удаляло.Удалите ссылки из пакетов .config, которые необходимо удалить.После этого он больше не будет отображаться в nuget, и вы можете переустановить или продолжить без него.

...