如何列出所有已安装的NuGet软件包?


92

如何列出所有本地安装的NuGet软件包?

是否有NuGet的等效项RPM -qa?在Chocolatey中chocolatey list -localonly,但是对我而言,我找不到与该命令等效的NuGet。

Answers:


94

NuGet软件包管理器控制台中,输入以下命令:

Get-Package

这将打印出已安装软件包的列表,或者如果不存在,则将以下行写入控制台:

PM> Get-Package
No packages installed.

有关更多详细信息,请参阅《NuGet PowerShell参考》


12
有办法使用nuget.exe吗?
bitbonk '16

2
运行命令后Get-Package,如果程序包的名称超过32个字符,则会对其名称进行修剪。是否可以增加“软件包名称”列,以使输出显示全名而不修剪它们?
尤利西斯·阿尔维斯

11
Get-Package | Format-Table -AutoSize会做到的
Mant101 '17

54

如果你只是做

Get-Package

它将列出软件包及其引用位置。如果您多次引用相同的软件包,它将一遍又一遍地列出相同的软件包。如果要获得解决方案中安装的所有软件包的完整列表,可以执行

Get-Package | select -Unique Id, Versions

16
Get-Package -ProjectName "Your.Project.Name"

将显示指定项目的软件包。

另请参阅:程序包管理器控制台PowerShell参考

请注意,每个项目都会有一个用于跟踪已安装软件包的packages.config文件。如果更改了此选项(特别是如果您将其向后更改),则项目可能不会自动下载正确的软件包版本。在这种情况下,请记下所需的软件包,并先进行卸载,然后再对每个软件包进行安装。

另外,备份是您的朋友!;)


12

在Visual Studio中,

  • 转到项目解决问题
  • 右键单击,管理NuGet软件包 ...
  • 在左侧,您将看到' 已安装的软件包
  • 单击此,您将看到列表

9

除了给出的所有答案外,Visual Studio项目根文件夹中的所有已安装软件包还以XML格式列出了所有内容:packages.config

在此处输入图片说明


我认为,最好的回应。
etiennejcharles

通过Visual Studio 2017 15.7版中引入的新项目文件结构,可以将NuGet包(或将用于新项目)移动到项目文件中,并且找不到packages.config文件。请参阅Microsoft文档
Frode Evensen



2

如果已安装.NET Core运行时,则可以使用.NET Core CLI工具中的dotnet list package命令为给定的解决方案或项目获取已安装的软件包。从Windows命令行这样使用它:

dotnet list "C:\Source\MySolution\MySolution.sln" package

它适用于.NET Framework和.NET Core项目。

注意:为了使此命令生效,解决方案必须使用新的NuGet PackageReference格式来引用NuGet软件包。右键单击packages.config,然后单击“将packages.config迁移到PackageReference ...”,然后通过构建解决方案来还原软件包,就像迁移一样容易。


适用于.NET Core,但不适用于.NET 4.5解决方案:至少在我的计算机上是这种情况。
克里斯蒂安·卡苏特

1
@ChristianCasutt我刚刚对其进行了测试,并且它在.NET Framework 4.5上运行正常,我要做的唯一一件事情就是从packages.config迁移到PackageReference,然后通过构建解决方案还原nuget软件包。
Shahin Dohan

引用/使用和安装之间没有区别吗?NuGet软件包不是在全球范围内安装,独立于解决方案/项目吗?
Peter Mortensen

@PeterMortensen我在这里假设OP是为项目/解决方案安装的。在全球范围内,已下载的软件包都已缓存,在这种情况下,我认为“已安装”一词并不有意义。
Shahin Dohan

0

回答“是否可以使用nuget.exe来做到这一点?” – 比特邦克

根据上述jstar的答案。我使用\替代/它更适合nuget在家的Windows环境。我对答案的修改被拒绝,所以我发表了自己的答案。

nuget list -Source c:\code\packages

c:\code本地代码存储库的路径在哪里。该packages文件夹与解决方案文件(* .sln)处于同一级别。


但这列出了来源(软件包来自何处),而不是已安装的软件包(?)。
Peter Mortensen
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.