我的Visual Studio Team Services(VSTS)帐户的私有程序包中有一个程序包,并且想要取消列出我的程序包的所有版本,因为它已被弃用并且已被其他程序包取代。因此我想标记旧程序包通过取消列表来删除它(不删除它,如果可能的话)
不幸的是,我找到的是一个按钮,它会取消列出一个特定版本的软件包,如here所述。以这种方式删除我的旧版程序包需要很长时间,因为我必须在从我的Feed中删除程序包之前轻松取消30个版本。
我知道nuget.org只需点击一下就可以取消列出所有版本的软件包,我认为它是一个基本功能。有谁知道是否有一个技巧或隐藏按钮,允许我在VSTS中更容易地取消列表包?或者是否可能有一个nuget cli命令?
答案 0 :(得分:4)
无论是通过VSTS网络用户界面还是nuget cli,这些包都只能逐个取消列出。
将包取消列表的格式为:
nuget delete <packageID> <packageVersion> [options]
但是您可以编写自己的脚本,以在VSTS Feed in循环中取消列出包。详细步骤如下:
<强> 1。将VSTS Feed添加为凭据
的来源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 Feed中的所有包
nuget list -source feedname
第3。循环在步骤2中获得的包,并将它们在循环中取消列出
nuget delete packagename packageversion -source feedname -ApiKey key
答案 1 :(得分:2)
TFS软件包UI允许您使用CTRL或SHIFT类型选择进行多重选择和取消列出。我用它来取消列出和升级软件包。
答案 2 :(得分:1)
我已创建并使用以下powershell脚本从我的tfs Feed中取消列出所有nuget包。
out_t out
答案 3 :(得分:1)
如果您需要同样的东西来制作nuget,并且是从google来到这里的,您还可以使用以下方法:
dotnet tool install --global NugetUnlister
然后
nuget-unlist drop PrereleaseBefore -p Some.Package --sv [0.1.3] -k somekey
答案 4 :(得分:1)
无需脚本即可取消列出所有软件包。
只需在用户界面中单击几下即可完成
:Artifacts/Packages
Versions
标签Unlist
重要提示:在撰写本文时,Devops UI中存在一个错误:如果选择的记录超过 100 个,则Unlist命令不会执行任何操作。因此,您可能需要选择100条(或更少)记录的批次中的记录才能使其正常工作!
答案 5 :(得分:0)
对于任何想要通过DevOps UI进行操作的人。我写了一个小的控制台脚本,它最多可以标记100个版本(受UI限制),然后您可以取消列出。如果增加滚动计数器,则无需始终重新开始;)
它会自动向下滚动并等待条目加载。
(() => { let view = document.getElementsByClassName('vss-PivotBar--content')[0]; let scroll = 0; let markedElements = 0; let doit = () => { if(view.scrollTop + 500 < view.scrollHeight && markedElements < 100) { console.log('i did scroll to: ' + scroll); let list = document.getElementsByClassName('ms-List-cell'); for (var el of list) { if(el.getElementsByClassName('strike-through').length == 0) { let btn = el.getElementsByClassName('ms-Check')[0]; if(btn.className.indexOf('is-checked') == -1 && markedElements < 100) {btn.click(); markedElements++;} } }console.log(markedElements); scroll++; view.scrollTo(0, 500 * scroll); setTimeout(()=>doit(), 2000); }}; doit(); })()