Wiem, że mogę odinstalować pakiet z konsoli PM. Wystąpiły problemy z zależnościami w innym projekcie i chcę zacząć od nowa i muszę usunąć wszystkie pakiety za jednym razem. Czy istnieje sposób?
90
Wiem, że mogę odinstalować pakiet z konsoli PM. Wystąpiły problemy z zależnościami w innym projekcie i chcę zacząć od nowa i muszę usunąć wszystkie pakiety za jednym razem. Czy istnieje sposób?
Aby pobrać wszystkie pakiety ze wszystkich projektów w rozwiązaniu, użyj Get-Package
. Aby uzyskać wszystkie pakiety z określonego projektu, użyj Get-Package -ProjectName "YourProjectName"
.
Uważaj: spowoduje to odinstalowanie WSZYSTKICH pakietów w rozwiązaniu . Jeśli
-Force
używany jest parametr, pakiety są usuwane, nawet jeśli istnieją zależności.
Get-Package | Uninstall-Package -RemoveDependencies -Force
Uważaj: spowoduje to odinstalowanie WSZYSTKICH pakietów w projekcie . Jeśli
-Force
używany jest parametr, pakiety są usuwane, nawet jeśli istnieją zależności.
Get-Package -ProjectName "YourProjectName" |
Uninstall-Package -ProjectName "YourProjectName" -RemoveDependencies -Force
-force
. To zadziałało dla mnie.W konsoli Menedżera pakietów wystarczy wpisać:
źródło
-Force
przełącznika.Spróbuj tego:
źródło
Jeśli chcesz odinstalować każdy pakiet NuGet z każdego projektu w rozwiązaniu, użyj tego w konsoli Menedżera pakietów NuGet:
źródło
$packages = Get-Package -ProjectName MyProjectName; foreach($package in $packages){ Uninstall-Package -ProjectName MyProjectName -Id $package.Id -Force}
Użycie parametru -Force w moim przypadku pozostawiło modyfikacje pliku projektu i odniesienia do niektórych plików binarnych, które powinny zostać usunięte podczas normalnego odinstalowywania pakietów.
Oto naiwna metoda odinstalowywania wszystkich pakietów z określonych projektów bez użycia parametru -Force. Skutecznie próbuje odinstalować pakiety w kółko, aż nie ma już żadnych pakietów, więc zobaczysz błędy wspominające o pakietach zależnych (jeśli je masz), ale będą one pojawiać się coraz rzadziej, gdy pakiety-liście zostaną usunięte w każdej iteracji.
Warto również wspomnieć, że przetestowałem tylko następujące fragmenty programu PowerShell w konsoli PackageManager. („Narzędzia> Menedżer pakietów NuGet> Konsola Menedżera pakietów”)
Odinstaluj wszystkie pakiety ze wszystkich projektów w rozwiązaniu
Usuń tylko projekty zawierające słowo „ WildCardSearch ”
Zwróć uwagę, że jeśli oprócz pakietów zależnych masz inny problem uniemożliwiający odinstalowanie pakietu, ten fragment kodu będzie działał wiecznie, dopóki nie zatrzymasz go ręcznie.
źródło
Nie wierzę, że jest to możliwe, więc odinstaluj WSZYSTKIE pakiety naraz. Jednak, jak już wskazałeś, możesz odinstalować pakiet, ale możesz także powiedzieć mu, aby odinstalował jego zależności, wykonując następujące czynności:
Oto blog Marcusa Hammarberga wyjaśniający to: http://www.marcusoft.net/2011/02/nuget-uninstall-remove-dependencies.html
źródło
Dummy old-school for loop:
źródło
Zaktualizowano skrypt, aby usunąć wszystkie pakiety NuGet dla pojedynczego projektu w rozwiązaniu VS:
źródło
Automatyczne przywracanie (odinstalowanie, a następnie instalacja) pakietów w projekcie za pomocą konsoli Menedżera pakietów:
Update-Package -Reinstall
źródło