PMコンソールからパッケージをアンインストールできることを知っています。別のプロジェクトで依存関係の問題が発生したため、最初からやり直したいので、すべてのパッケージを一度に削除する必要があります。方法はありますか?
ソリューションのすべてのプロジェクトからすべてのパッケージを取得するには、Get-Package
を使用します。特定のプロジェクトからすべてのパッケージを取得するには、Get-Package -ProjectName "YourProjectName"
を使用します。
注意:これはALLパッケージのsolutionをアンインストールします。
-Force
パラメーターを使用すると、依存関係が存在する場合でもパッケージが削除されます。
Get-Package | Uninstall-Package -RemoveDependencies -Force
注意:これはALLパッケージのprojectをアンインストールします。
-Force
パラメーターを使用すると、依存関係が存在する場合でもパッケージが削除されます。
Get-Package -ProjectName "YourProjectName" |
Uninstall-Package -ProjectName "YourProjectName" -RemoveDependencies -Force
パッケージマネージャーコンソールで次のように入力します。
get-package |アンインストールパッケージ-removedependencies
これを試して:
get-package | uninstall-package -removedependencies -force
ソリューションのすべてのプロジェクトからすべてのNuGetパッケージをアンインストールする場合は、NuGetパッケージマネージャーコンソールでこれを使用します。
foreach($project in $projects){ $packages = Get-Package -ProjectName $project.Name; foreach($package in $packages){ Uninstall-Package -ProjectName $project.Name -Id $package.Id -Force} }
私の場合、-Forceパラメーターを使用すると、プロジェクトファイルの変更と、通常パッケージをアンインストールするときに削除されるはずのいくつかのバイナリへの参照が残っていました。
以下は、-Forceパラメーターを使用せずに特定のプロジェクトからすべてのパッケージをアンインストールする単純な方法です。事実上、パッケージがなくなるまでパッケージを何度もアンインストールしようとするため、依存パッケージ(ある場合)に言及するいくつかのエラーが表示されますが、リーフパッケージが反復処理ごとに削除されるにつれて、それらは徐々に少なくなります。
また、言及する価値があるのは、PackageManagerコンソールで次のPowerShellスニペットのみをテストしたことです。 (「ツール> NuGetパッケージマネージャー>パッケージマネージャーコンソール」)
ソリューション内のすべてのプロジェクトからすべてのパッケージをアンインストール
while((Get-Project -All | Get-Package).Length -gt 0) { Get-Project -All | Get-Package | Uninstall-Package }
「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 }
パッケージのアンインストールを妨げる依存パッケージとは別の問題がある場合、このスニペットは手動で停止するまで永久に実行されることに注意してください。
これが可能だとは思わないので、すべてのパッケージを一度にアンインストールしてください。ただし、既に示したように、パッケージをアンインストールできますが、次のようにして依存関係をアンインストールするように指示することもできます。
アンインストールパッケージOpenIdPortableArea –RemoveDependencies
これを説明しているMarcus Hammarbergのブログ: http://www.marcusoft.net/2011/02/nuget-uninstall-remove-dependencies.html
ダミーのオールドスクールforループ:
$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++
}
}