2012-08-08 28 views
40

NuGet PowerShell命令将返回特定程序包所有版本的列表?在NuGet程序包管理器控制台中列出特定程序包的所有可用版本

我已经尝试了以下操作,但它只返回NUnit的一个版本以及其他一些(un)相关软件包,每个软件包只有一个版本。

Get-Package -Source https://go.microsoft.com/fwlink/?LinkID=206669 -ListAvailable -Filter NUnit -AllVersions

注:我指定的源URI,因为我们作为默认的远程我们自己的内部包源。

我的理解是,-AllVersions开关应该拉回每个匹配包的每个版本。

似乎我无法弄清楚的是:

  1. 我是不是做错了?
  2. 如果不是,项目维护人员(或其他人)是否从软件包源中删除旧版本?
  3. 如果是,为什么?
+0

你说这是你的内包装源,然后如果2)的情况下,为什么问3)在这里?去问问他们! – manojlds 2012-08-08 16:37:25

+0

也许我不清楚:我提供的源URI是(显然,请参阅Alexandre的回答)nuget v1软件包源端点。我们的内部软件包源只有内部开发的软件包,所以我们需要提供-Source以查询官方的NuGet软件包源。希望有助于澄清。谢谢你的评论! – 2012-08-08 17:52:26

回答

6

由于3.x版本的,get-package -ListAvailable -AllVersions仍然可以工作,但会发出以下警告有关即将弃用:

此命令/参数组合已弃用,将在下一版本中删除。请考虑使用替换它的新命令:'Find-Package [-Id] -AllVersions'。

此外,Find-Package支持的-ExactMatch开关,这将避免通配符匹配问题是-Filter有:

Find-Package NUnit -AllVersions -ExactMatch -Source https://api.nuget.org/v3/index.json

53

你的源解析为饲料的1版本,它似乎并没有与-AllVersions工作(我申请一个问题:https://github.com/NuGet/NuGetGallery/issues/563

使用V2饲料为我的作品:

get-package -ListAvailable -AllVersions -filter nunit -source https://nuget.org/api/v2/ 

但请注意,-filter不是针对特定的包,而更像是一个搜索词。

作为一种变通方法,我会使用标签自动完成获取特定软件包的版本列表:

install-package -source https://nuget.org/api/v2/ -id nunit -version <tab> 
+5

完美!我不知道标签自动完成。这比运行所有这些命令更简单得多。非常感谢。并感谢开放问题。 – 2012-08-08 17:57:39

+0

如果在update-package中有自动完成功能,那就太好了... – OzrenTkalcecKrznaric 2015-07-07 13:06:59

+3

这并不完美,我们无法看到列出的所有版本。在我的情况下,如果软件包有4个以上的版本,则只显示前4个,而剩余的部分被截断(用'...'代替)。它看起来非常漂亮,并且有3列整齐,但它不能显示版本列中的所有版本。我不明白为什么这是可以接受的。因此,如果你想看到所有可用的版本,只需使用Nuget Package Manager(UI)而不是Nuget Package Console(至少在此时它在这种情况下变得无用)。 – 2016-11-18 03:48:20

相关问题