IT:AD:NuGet:HowTo:Use Powershell to Remove Stale Nuget.org Listings
Summary
Process
Example:
$name="XAct.Core";$i=50; While ($i -le 500) {c:\ProgramFiles\Nuget\Nuget delete $name 0.0.$i 3ac5a5f6... -NoPrompt; $i +=1}
Taken a bit further, that became:
$xml = [xml](get-content "c:\NugetPackagesToCleanup.config");
$packageNodes = $xml.SelectNodes("/packages/package");
$packageNameList = New-Object "System.Collections.ObjectModel.Collection[System.String]"
foreach ($_ in $packageNodes) { $packageNameList.Add($_.innerText)}
Write-Host("....");
foreach($package in $packageNameList){
Write-Host ($package);
$i=50;
$iMax=530;
$apiKey="...";
While ($i -le $iMax)
{
c:\ProgramFiles\Nuget\Nuget delete $package 0.0.$i -ApiKey $apiKey -NoPrompt
$i +=1;
}
}
That's searching something that looks like:
<?xml version="1.0"?> <packages> <package>XAct.Collections</package> <package>XAct.Core</package> <package>XAct.Data</package> <package>XAct.IO</package> <package>XAct.Data.Db</package> <package>XAct.UI.Core</package> <package>XAct.UI.Web</package> <package>XAct.Data.Mapping</package> <package>XAct.Resources</package> <package>XAct.Resources.Db</package> <package>XAct.Services.IoC.ASPMVC.Ninject</package> <package>XAct.Services.IoC.ASPMVC.Unity</package> <package>XAct.Services.IoC.ASPNet.Ninject</package> <package>XAct.Services.IoC.ASPNet.Unity</package> <package>XAct.Services.IoC.Ninject</package> <package>XAct.Services.IoC.Unity</package> <package>XAct.Settings</package> <package>XAct.Data.Db.EF</package> <package>XAct.Environment.IIS</package> <package>XAct.IO.FS</package> <package>XAct.Runtime.InteropServices</package> <package>XAct.Security</package> <package>XAct.Security.Windows</package> <package>XAct.Workflows.K2.CLient</package> <package>XAct.IO.TemplateENgines.NVelocity</package> <package>XAct.IO.Compression.DotNetZip</package> <package>XAct.IO.Compression.ZipPackage</package> <package>XAct.Security.Web</package> <package>XAct.EnterpriseLibrary</package> <package>XAct.Diagnostics.Log4Net</package> <package>XAct.IO.FileSystemWatcher</package> <package>XAct.Configuration</package> <package>XAct.Settings</package> <package>XAct.Dependency.K2.Client</package> <package>XAct.Settings.Host.AppSettings</package> <package>XAct.UI.Web.Mvc.v3</package> <package>XAct.Workflows</package> <package>XAct.ServiceProcess</package> <package>XAct.Services.IoC</package> <package>XAct.Workflows.Mocsk</package> <package>XAct.Resources.Db.EF</package> <package>XAct.Services.IoC.AspMvc</package> <package>XAct.Domain</package> <package>XAct.ObjectMapping</package> <package>XAct.History</package> <package>XAct.Sharepoint.Client</package> <package>XAct.XAct.UI.Web.Resources</package> <package>XAct.History.I.Db.EF</package> <package>XAct.UI.Db.EF</package> <package>XAct.UI.Web.Mvc</package> <package>XAct.ObjectMapping.AUtoMapper</package> <package>XAct.Language</package> <package>XAct.Languages.JS.Jurassic</package> <package>XAct.Rules</package> <package>XAct.Rules.Db.EF</package> </packages>