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

C# 如何列出所有已安装的NuGet软件包?,c#,asp.net,visual-studio,nuget,C#,Asp.net,Visual Studio,Nuget,如何列出所有本地安装的NuGet软件包 是否有一个NuGet等效于RPM-qa?其中有巧克力列表-localonly,但就我而言,我找不到与该命令等效的NuGet命令。在NuGet软件包管理器控制台中,输入以下命令: Get-Package 这将打印出已安装软件包的列表,或者如果没有,则在控制台中写入以下行: PM> Get-Package No packages installed. 有关详细信息,请查看Visual Studio中的。 转到有问题的项目或解决方案 右键单击,管理N

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

是否有一个NuGet等效于
RPM-qa
?其中有
巧克力列表-localonly
,但就我而言,我找不到与该命令等效的NuGet命令。

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

Get-Package
这将打印出已安装软件包的列表,或者如果没有,则在控制台中写入以下行:

PM> Get-Package
No packages installed.
有关详细信息,请查看Visual Studio中的。

  • 转到有问题的项目解决方案
  • 右键单击,管理NuGet软件包
  • 在左侧,您将看到“已安装的软件包”
  • 单击此按钮,您将看到列表
将显示指定项目的包

另见:

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

而且,备份是你的朋友!;)

如果你这么做的话

Get-Package
它将列出这些包及其引用位置。如果您多次引用相同的包,它会一次又一次地列出它们。如果您想获得解决方案中安装的所有软件包的完整列表,可以这样做

Get-Package | select -Unique Id, Versions
如何列出所有已安装的NuGet软件包

假设

右键单击项目节点,然后单击管理NuGet软件包

请参阅已安装软件包列表


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

回答:


其中C:/packages是指向本地存储库的路径。

回答“有没有办法使用nuget.exe执行此操作?”

根据上面的答案。我使用了
\
而不是
/
,这更适合nuget在家的Windows环境。我对答案的编辑被拒绝了,所以我发布了自己的答案

numget列表-源代码c:\code\packages

其中
c:\code
是指向本地代码存储库的路径。
packages
文件夹与解决方案文件(*.sln)处于同一级别。

如果安装了.NET Core运行时,可以使用.NET Core CLI工具中的命令获取给定解决方案或项目的已安装包。在Windows命令行中使用它:

dotnet list "C:\Source\MySolution\MySolution.sln" package
它同时适用于.NET框架和.NET核心项目


注意:要使此命令起作用,解决方案必须使用引用NuGet包。迁移非常简单,只需右键单击packages.config,然后单击“Migrate packages.config to PackageReference…”,然后通过构建解决方案还原包。

有没有办法使用nuget.exe执行此操作?在运行命令
Get Package
后,当包的字符数超过32个时。是否可以增加“包名”列,以便输出显示全名而不进行修剪?
Get package | Format Table-AutoSize
可以做到这一点,在我看来,这是最好的回答。随着Visual Studio 2017 15.7版中引入的新项目文件结构,NuGet包可以(或将用于新项目)被移动到项目文件,您将找不到
packages.config
文件。看,这一次只给你一个项目。我的解决方案中有大约250个项目,因此如果您不想一次只看一个解决方案,那么其他答案会更好。它适用于.NET Core,但不适用于.NET 4.5解决方案:至少在我的计算机上是这样。@ChristianCasett我刚刚测试了它,它在.NET Framework 4.5上运行良好,我唯一要做的是,然后通过构建解决方案还原nuget软件包。引用/使用和安装之间没有区别吗?NuGet软件包不是独立于解决方案/项目而在全球范围内安装的吗?@PeterMortensen我在这里假设OP是为项目/解决方案安装的。在全局范围内,下载的包被缓存,我认为术语“已安装”在该上下文中没有意义。但这列出了源(包来自何处),而不是已安装的包(?)。请注意,我必须使用一个绝对路径才能工作。要排序:`Get Package | select-Unique Id,Versions | sort Id
nuget list -Source C:/packages
dotnet list "C:\Source\MySolution\MySolution.sln" package