从Visual Studio Online Package Feed中删除NuGet包而不是Unlist
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Visual Studio Online Package Feed中删除NuGet包而不是Unlist相关的知识,希望对你有一定的参考价值。
是否可以从Visual Studio Online包源中删除NuGet
包?
我使用构建任务为dotnet核心项目在Visual Studio Online上设置CI。
其中一个步骤是将pack
解决方案中的所有项目作为NuGet
包和push
这些包装Feed。
构建工作正常,但在我第一次尝试pack
和push
构建步骤时,我使用了**/.csproj
通配符而不是src/**/.csproj
。所以它包装并推动了我在tests/**
下的所有测试项目。
我想从Feed中删除这些包。我能在UI中找到的唯一选择是unlist
包。但是这个操作后包仍然存在。
我还尝试通过CLI删除软件包:nuget delete
。但它和unlist
一样。
有没有人能够删除他们的包裹?
是的,这可以通过VSTS的套餐管理开箱即用。请注意,不公开和删除之间存在差异,我将进一步详细说明。
用于从VSTS包管理中删除现有包的TL; DR故事是您必须是包的“所有者”或具有“项目管理员”的角色才能删除它。要取消列出包,您只需要“贡献者”角色。对于这两个选项,只需在VSTS中输入包详细信息,然后从省略号下的菜单中选择适当的选项:
现在获取一些可能有用的背景信息。有一些官方文件可用on visualstudio.com:
有两个选项可用于从Feed中删除NuGet包的版本。
取消列出:取消列出程序包的版本会修改程序包在NuGet客户端中的显示方式(有关unlist如何工作的完整说明,请参阅NuGet文档)。取消列出版本可以帮助您防止新版本的使用,而不会破坏依赖项目和构建。
删除:删除软件包的某个版本会使其永久不可用于安装或还原。
取消列表并删除尊重饲料不变性。将特定版本的软件包发布到源后,该版本号将永久保留。您无法上载具有相同版本号的较新版本包,或删除它并在同一版本上载新包。
这里的重要部分是“饲料不变性”,according to the canon,转化为:
将特定版本的软件包发布到源后,该版本号将永久保留。您无法上载具有相同版本号的较新版本包,或删除它并在同一版本上载新包。
作为底部的脚注,文档还确认了您已经发现的有关nuget.exe的内容:
目前,NuGet.exe只能取消列出包; Team Services和TFS将nuget.exe delete解释为unlist操作以与NuGet.org保持一致。要删除程序包,必须使用REST API或Web界面。
以编程方式执行此操作应该通过REST API或VSTS管理部分完成,如上所述。 NuGet.exe只能用于不列名 - 不能删除。
考虑到所有这些因素,使用VSTS可以删除软件包,但是 - 一如既往 - 在您这样做之前要三思而后行。还记得LeftPad debacle吗? ;)
以上是关于从Visual Studio Online Package Feed中删除NuGet包而不是Unlist的主要内容,如果未能解决你的问题,请参考以下文章
可以从 Visual Studio Online 中删除已完成的迭代吗?
Visual Studio Online,从积压视图添加新项目时遇到错误“TF400486:无法完成操作...”
从Visual Studio Online Package Feed中删除NuGet包而不是Unlist
在 Azure 中使用 Visual Studio Online 加载测试性能计数器