【问题标题】:How do I list all installed NuGet packages?如何列出所有已安装的 NuGet 包?
【发布时间】:2014-04-17 07:43:24
【问题描述】:

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

是否有与 RPM -qa 等效的 NuGet?在Chocolatey 中有chocolatey list -localonly,但我终其一生都找不到与该命令等效的 NuGet。

【问题讨论】:

    标签: asp.net visual-studio nuget command-line-interface


    【解决方案1】:

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

    Get-Package | Format-Table -AutoSize
    

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

    PM> Get-Package
    No packages installed.
    

    更多详情,请查看NuGet PowerShell Reference

    【讨论】:

    • 有没有办法使用 nuget.exe 做到这一点?
    • 运行命令Get-Package后,packages' names are trimmed当它们有超过32个字符时。是否可以增加包名列,以便输出显示全名而不修剪它们?
    • Get-Package | Format-Table -AutoSize 会做到的
    【解决方案2】:

    如果你这样做

    Get-Package
    

    它将列出包以及它们被引用的位置。如果您多次引用它们,它将一遍又一遍地列出相同的包。如果您想获得解决方案中安装的所有软件包的干净列表,您可以这样做

    Get-Package | select -Unique Id, Versions
    

    【讨论】:

    • 排序:`Get-Package |选择 - 唯一 ID,版本 |排序 ID
    【解决方案3】:
    Get-Package -ProjectName "Your.Project.Name"
    

    将显示指定项目的包。

    另请参阅:Package Manager Console PowerShell Reference

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

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

    【讨论】:

      【解决方案4】:

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

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

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

      注意:要使此命令起作用,解决方案必须使用new NuGet PackageReference format 来引用 NuGet 包。迁移很简单,只需右键单击 packages.config,然后单击“将 packages.config 迁移到 PackageReference...”,然后通过构建解决方案来恢复包。

      【讨论】:

      • 适用于 .NET Core 但不适用于 .NET 4.5 解决方案:至少在我的计算机上是这样。
      • @ChristianCasutt 我刚刚对其进行了测试,它在 .NET Framework 4.5 上运行良好,我唯一要做的就是 migrate from packages.config to PackageReference,然后通过构建解决方案来恢复 nuget 包。
      • 引用/使用和安装没有区别吗? NuGet 包不是全局安装的,独立于解决方案/项目吗?
      • @PeterMortensen 我在这里假设 OP 意味着为项目/解决方案安装。在全球范围内,下载的包被缓存,我认为“已安装”一词在这种情况下没有意义。
      【解决方案5】:

      在 Visual Studio 中,

      • 转到有问题的项目解决方案
      • 右键单击,管理 NuGet 包...
      • 在左侧,您将看到“Installed Packages
      • 点击这个,你会看到列表

      【讨论】:

        【解决方案6】:

        除了所有给定的答案之外,还有一个以 XML 格式列出您的 Visual Studio 项目根文件夹中所有已安装包的干净列表:packages.config

        【讨论】:

        • 在我看来,最好的回应。
        • 使用 Visual Studio 2017 版本 15.7 中引入的新项目文件结构,NuGet 包可以(或将用于新项目)移动到项目文件中,您将找不到 packages.config 文件。见Microsoft documentation
        • 这一次只给你一个项目。我的解决方案中有大约 250 个项目,因此如果您不想一次完成一个解决方案,其他答案会更好。
        • 对于较新的解决方案,变化很大,您没有 packages.config 文件,而是在项目文件中甚至在锁定文件中使用 PackageReference。现在有几种方法可以列出 nuget 包!
        【解决方案7】:

        回复"Is there a way to do this using nuget.exe? – bitbonk"

        nuget list -Source C:/packages
        

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

        【讨论】:

        • 请注意,我必须使用绝对路径才能正常工作。
        【解决方案8】:

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

        假设NuGet is properly installed

        右击Project节点并点击Manage NuGet Packages

        查看已安装的软件包列表

        【讨论】:

          【解决方案9】:

          回答“有没有办法使用 nuget.exe 做到这一点?” – bitbonk

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

          nuget list -Source c:\code\packages

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

          【讨论】:

          • 但这列出了来源(包的来源),而不是已安装的包 (?)。
          猜你喜欢
          • 2023-03-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多