Je sais que je peux désinstaller-package de la console PM. J'ai eu quelques problèmes de dépendance avec un autre projet et je veux recommencer, et je dois supprimer tous les packages en une fois. Y at-il une façon?
Pour obtenir tous les packages de tous les projets de la solution, utilisez Get-Package
. Pour obtenir tous les packages d'un projet spécifique, utilisez Get-Package -ProjectName "YourProjectName"
.
Attention, ceci désinstallera TOUS LES paquets dans solution. Si le paramètre
-Force
Est utilisé, les packages sont supprimés même s'il existe des dépendances.
Get-Package | Uninstall-Package -RemoveDependencies -Force
Attention, cela désinstallera TOUS LES paquets du projet. Si le paramètre
-Force
Est utilisé, les packages sont supprimés même s'il existe des dépendances.
Get-Package -ProjectName "YourProjectName" |
Uninstall-Package -ProjectName "YourProjectName" -RemoveDependencies -Force
Dans la console du gestionnaire de packages, tapez simplement:
get-package | uninstall-package -removedependencies
essaye ça:
get-package | uninstall-package -removedependencies -force
Si vous souhaitez désinstaller chaque package NuGet de chaque projet d'une solution, utilisez-le dans la console NuGet Package Manager:
foreach($project in $projects){ $packages = Get-Package -ProjectName $project.Name; foreach($package in $packages){ Uninstall-Package -ProjectName $project.Name -Id $package.Id -Force} }
L'utilisation du paramètre -Force dans mon cas a laissé des modifications de fichier de projet et des références à des fichiers binaires qui auraient dû être supprimés lors de la désinstallation normale des packages.
Voici une méthode naïve pour désinstaller tous les packages de projets spécifiques sans utiliser le paramètre -Force. Effectivement, il essaie de désinstaller les paquetages encore et encore jusqu'à ce qu'il ne reste plus de paquetages. Vous verrez donc des erreurs mentionnant des paquets dépendants (si vous les avez), mais elles apparaîtront de moins en moins au fur et à mesure que les paquets terminaux seront supprimés à chaque itération.
Il convient également de mentionner que je n’ai testé que les extraits de code PowerShell suivants dans la console PackageManager. ("Outils> Gestionnaire de paquets NuGet> Console du gestionnaire de paquets")
désinstaller tous les packages de tous les projets d'une solution
while((Get-Project -All | Get-Package).Length -gt 0) { Get-Project -All | Get-Package | Uninstall-Package }
Supprimez uniquement les projets contenant le mot " WildCardSearch "
while((Get-Project -All | Where-Object ProjectName -like '*WildCardSearch*' | Get-Package).Length -gt 0) { Get-Project -All | Where-Object ProjectName -like '*WildCardSearch*' | Get-Package | Uninstall-Package }
Notez que si vous rencontrez un autre problème en dehors des packages dépendants empêchant une désinstallation du package, cet extrait de code sera exécuté de manière permanente jusqu'à ce que vous l'arrêtiez manuellement.
Je ne crois pas que cela soit possible, alors désinstallez TOUS les paquets en même temps. Cependant, comme vous l'avez déjà indiqué, vous pouvez désinstaller un paquet, mais vous pouvez également lui demander de désinstaller ses dépendances en procédant comme suit:
Uninstall-Package OpenIdPortableArea –RemoveDependencies
Voici un blog de Marcus Hammarberg expliquant ceci: http://www.marcusoft.net/2011/02/nuget-uninstall-remove-dependencies.html
Mannequin vieille école pour boucle:
$packages = get-package
$packageId = "Apache.NMS.ActiveMQ"
$counter = 1
foreach($package in $packages){
if($package.Id -eq $packageId)
{
Write-Host "`n$counter-Deleting Package:`n"
$package
Uninstall-Package -Id $packageId -ProjectName $package.ProjectName -RemoveDependencies
Write-Host "`n============================================`n"
$counter++
}
}