Как мне вывести список всех установленных пакетов NuGet?

94

Как вывести список всех локально установленных пакетов NuGet?

Есть ли в NuGet эквивалент RPM -qa? Внутри Chocolatey есть команда chocolatey list -localonly, но, хоть убей, я не могу найти NuGet-эквивалент этой команды.

Родопы
источник

Ответы:

95

В консоли диспетчера пакетов NuGet введите следующую команду:

Get-Package

Это либо распечатает список установленных пакетов, либо, если их нет, напишите в консоль следующую строку:

PM> Get-Package
No packages installed.

Дополнительные сведения см . В Справочнике по NuGet PowerShell .

Филип Альгайер
источник
12
Есть ли способ сделать это с помощью nuget.exe?
bitbonk
2
После выполнения команды Get-Package, имена пакетов - обрезаются , когда они имеют более чем 32 characteres. Можно ли увеличить столбец имени пакета, чтобы вывод отображал полные имена без их обрезки?
Ulysses Alves
12
Get-Package | Format-Table -AutoSizeсделаю это
Mant101
57

Если ты просто сделаешь

Get-Package

он перечислит пакеты и ссылки на них. Он будет перечислять одни и те же пакеты снова и снова, если на них много раз ссылались. Если вы хотите получить чистый список всех пакетов, установленных в решении, вы можете сделать

Get-Package | select -Unique Id, Versions
Bitbonk
источник
16
Get-Package -ProjectName "Your.Project.Name"

Покажет пакеты для указанного проекта.

См. Также: Справочник по PowerShell консоли диспетчера пакетов

Обратите внимание, что в каждом проекте будет файл packages.config, который используется для отслеживания установленных пакетов. Если это изменить (в частности, если вы измените его в обратном направлении), проекты могут не загрузить автоматически правильную версию пакета. В этом случае запишите необходимые пакеты и выполните команду uninstall-package, а затем установочный пакет для каждого.

Кроме того, резервные копии - ваш друг! ;)

Нилхайли
источник
12

В Visual Studio

  • перейти к проекту или решению в вопросе
  • щелкните правой кнопкой мыши, Управление пакетами NuGet ...
  • слева вы увидите « Установленные пакеты »
  • нажмите на это, и вы увидите список
christiandev
источник
9

В дополнение ко всем приведенным ответам есть также чистый список в формате XML всех установленных пакетов в корневой папке проекта Visual Studio: packages.config :

Введите описание изображения здесь

слабый
источник
На мой взгляд, лучший ответ.
etiennejcharles
Благодаря новой файловой структуре проекта, представленной в Visual Studio 2017 версии 15.7, пакеты NuGet можно (или будут для новых проектов) перемещать в файл проекта, и вы не сможете найти packages.configфайл. См. Документацию Microsoft .
Frode Evensen,
Это дает вам только один проект за раз. В моем решении около 250 проектов, поэтому другие ответы будут лучше, если вы не хотите рассматривать решения по одному.
RosieC,
5

Как мне просмотреть все установленные пакеты NuGet?

Предполагая, что NuGet установлен правильно

Щелкните правой кнопкой мыши узел " Проект" и выберите " Управление пакетами NuGet".

Щелкните правой кнопкой мыши узел проекта

См. Список установленных пакетов

Посмотреть установленные пакеты

Замир Ансари
источник
3

Если у вас установлена ​​среда выполнения .NET Core, вы можете использовать команду dotnet list package в инструментах интерфейса командной строки .NET Core, чтобы получить установленные пакеты для данного решения или проекта. Используйте его так из командной строки Windows:

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

Он работает как с проектами .NET Framework, так и с .NET Core.

Примечание. Чтобы эта команда работала, решение должно использовать новый формат NuGet PackageReference для ссылки на пакеты NuGet. Перенести так же просто, как щелкнуть правой кнопкой мыши файл packages.config и выбрать «Migrate packages.config to PackageReference ...», а затем восстановить пакеты путем создания решения.

Шахин Дохан
источник
Работает для .NET Core, но не для .NET 4.5. Решение. По крайней мере, это так на моем компьютере.
Кристиан Касутт
1
@ChristianCasutt Я только что протестировал его, и он отлично работает на .NET Framework 4.5, единственное, что мне нужно было сделать, это перейти из packages.config в PackageReference , а затем восстановить пакеты nuget, построив решение.
Шахин Дохан,
Нет ли разницы между ссылками / использованием и установкой? Разве пакеты NuGet не устанавливаются глобально, независимо от решений / проектов?
Питер Мортенсен
@PeterMortensen Здесь я предполагаю, что OP означал установленный для проекта / решения. В глобальном масштабе загруженные пакеты кэшируются, и я не думаю, что термин «установленные» имеет смысл в этом контексте.
Шахин Дохан,
0

Ответ на вопрос "Есть ли способ сделать это с помощью nuget.exe?" - битбонк

На основании ответа от jstar выше. Я использовал \вместо того, /что больше подходит для среды Windows, где nuget находится дома. Мое изменение ответа было отклонено, поэтому я публикую свой собственный.

nuget list -Source c:\code\packages

Где c:\codeпуть к вашему локальному репозиторию кода. packagesПапка находится на том же уровне , как ваше решение-файл (* .sln).

KargWare
источник
Но здесь перечислены источники (откуда берутся пакеты), а не установленные пакеты (?).
Питер Мортенсен,