Я знаю, что могу удалить пакет из консоли PM. У меня возникли проблемы с зависимостями с другим проектом, и я хочу начать все сначала, и мне нужно удалить все пакеты одним выстрелом. Есть способ?
90
Я знаю, что могу удалить пакет из консоли PM. У меня возникли проблемы с зависимостями с другим проектом, и я хочу начать все сначала, и мне нужно удалить все пакеты одним выстрелом. Есть способ?
Чтобы получить все пакеты из всех проектов в решении, используйте Get-Package
. Чтобы получить все пакеты из определенного проекта, используйте Get-Package -ProjectName "YourProjectName"
.
Будьте осторожны: это приведет к удалению ВСЕХ пакетов в решении . Если
-Force
используется параметр, пакеты удаляются, даже если существуют зависимости.
Get-Package | Uninstall-Package -RemoveDependencies -Force
Будьте осторожны: это приведет к удалению ВСЕХ пакетов в проекте . Если
-Force
используется параметр, пакеты удаляются, даже если существуют зависимости.
Get-Package -ProjectName "YourProjectName" |
Uninstall-Package -ProjectName "YourProjectName" -RemoveDependencies -Force
-force
. Это сработало для меня.В консоли диспетчера пакетов просто введите:
источник
-Force
переключатель.попробуй это:
источник
Если вы хотите удалить каждый пакет NuGet из каждого проекта в решении, используйте это в консоли диспетчера пакетов NuGet:
источник
$packages = Get-Package -ProjectName MyProjectName; foreach($package in $packages){ Uninstall-Package -ProjectName MyProjectName -Id $package.Id -Force}
Использование параметра -Force в моем случае оставило изменения в файле проекта и ссылки на некоторые двоичные файлы, которые должны были быть удалены при обычном удалении пакетов.
Это наивный способ удалить все пакеты из определенных проектов без использования параметра -Force. По сути, он пытается удалить пакеты снова и снова, пока не останутся пакеты, поэтому вы увидите некоторые ошибки, в которых упоминаются зависимые пакеты (если они у вас есть), но они будут появляться все реже и реже по мере удаления конечных пакетов на каждой итерации.
Также стоит упомянуть, что я тестировал только следующие фрагменты PowerShell в консоли PackageManager. («Инструменты> Диспетчер пакетов NuGet> Консоль диспетчера пакетов»)
Удалите все пакеты из всех проектов в решении.
Удаляйте только проекты, содержащие слово " WildCardSearch "
Обратите внимание, что если у вас есть другая проблема, помимо зависимых пакетов, препятствующих удалению пакета, этот фрагмент будет работать вечно, пока вы не остановите его вручную.
источник
Я не верю, что это возможно, поэтому сразу удалите ВСЕ пакеты. Однако, как вы уже указали, вы можете деинсталлировать пакет, но вы также можете указать ему деинсталлировать его зависимости, выполнив следующие действия:
Вот блог Маркуса Хаммарберга, объясняющий это: http://www.marcusoft.net/2011/02/nuget-uninstall-remove-dependencies.html
источник
Пустышка старой школы для цикла:
источник
Обновлен скрипт для удаления всех пакетов nuget для одного проекта в решении VS:
источник
Автоматическое восстановление (удаление, а затем установка) пакетов в проекте с помощью консоли диспетчера пакетов:
Обновление-Пакет -Переустановить
источник