2017-09-20 17 views
1

私はVisual Studio Team Services(VSTS)アカウントのプライベートパッケージフィードにパッケージを持っており、廃止され、異なるpackage.Thusは、私は残念ながら、私は見つけることができるすべては説明のように、パッケージの特定のバージョンをunlistsボタンでVSTSパッケージフィードのすべてのバージョンのNugetパッケージをリストから外します

(可能ならば、それを削除しない)ことをunlistingによってdeprectedとして古いパッケージをマークしたいですhere。私のフィードからパッケージが削除される前に、30のバージョンを簡単にリストから外す必要があるので、レガシーパッケージを削除するには時間がかかります。

nuget.orgには、ワンクリックですべてのバージョンのパッケージをリストから削除する機能があり、基本機能と考えています。 VSTSでパッケージを簡単にリストから外すことを可能にするトリックまたは隠しボタンがあるかどうかは誰にも知られていますか?それとも多分ナゲットのcliコマンドですか?

答えて

3

VSTSのWeb UIまたはNuget Cliに関係なく、のパッケージは、1つずつに限定されています。

非公開にパッケージのフォーマット:

nuget delete <packageID> <packageVersion> [options] 

しかし、あなたはループにフィードあなたのVSTSに非公開にパッケージに独自のスクリプトを書くことができます。詳細手順は、よう:

1. VSTSのすべてのパッケージを養う資格

nuget sources add -Name "feedname" -Source "https://account.pkgs.visualstudio.com/_packaging/feedname/nuget/v3/index.json" -Username <Alternate username/email> -password <Alternate password/PAT> 

2.リストでソースとしてVSTSフィードを追加

nuget list -source feedname 

3.ループ手順2で取得したパッケージ、ループ内でパッケージを解除する

nuget delete packagename packageversion -source feedname -ApiKey key 
+0

簡単な方法はありませんが、あなたは正しいです、スクリプトは私のために働くでしょう。ありがとう! – Peter

1

次のpowershellスクリプトを作成して使用し、tfsフィードからすべてのnugetパッケージをリストから削除しました。

$nugetFeed = "http://tfs/MyTeam/_packaging/MyProject/nuget/v3/index.json" 
$nugetExe = "C:\pathToNuget\nuget.exe" 
$packageToDelete = "MyPackage" 
$apiKey = "VSTS" 

function Get-PackageVersions 
{ 
    Param 
    (
     [string]$Package, 
     [string]$Feed, 
     [string]$Nuget 
    ) 

    $packageContent = & $Nuget list -Source $Feed -PreRelease -AllVersions 
    $packages = $packageContent.Split([Environment]::NewLine) 
    foreach($line in $packages) { 
     $parts = $line.Split(' ') 
     $packageName = $parts[0] 
     $packageVersion = $parts[1] 
     if($packageName -eq $Package) { 
      $packageVersion 
     } 
    } 
} 

$versions = Get-PackageVersions -Package $packageToDelete -Feed $nugetFeed -Nuget $nugetExe 
foreach($version in $versions) { 
    & $nugetExe delete $packageToDelete $version -Source $nugetFeed -ApiKey VSTS $apiKey 
} 
関連する問題