2012-01-27 8 views
14

Когда вы показываете диалоговое окно «Управление пакетами NuGet», оно отображает доступные пакеты с гораздо большей информацией, чем, по-видимому, доступным, чем из командной строки.Отображение зависимостей пакета NuGet

В частности, есть ли способ из powershell, который будет перечислять доступные пакеты - или только один конкретный пакет - с пакетами, на которых они зависят, в идеале с их целевой версией (диапазонами)?

ответ

15

Да, есть.

# shows all available packages 
PM> get-package -list 

# get single package info 
PM> get-package -list solrnet.nhibernate 

# view dependencies 
PM> get-package -list solrnet.nhibernate | select dependencies 
NHibernate:[2.1.2.4000]|CommonServiceLocator:[1.0]|SolrNet:[0.3.1] 
+2

Не похоже, чтобы быть зависимыми в списке в VS2015 –

+0

Это не похоже на PowerShell, это выглядит как диспетчер пакетов в Visual Studio –

+8

@MichaelEakins Окно диспетчера пакетов NuGet в Visual Studio реализовано как хост PowerShell, ergo it * - это * PowerShell. Я знаю это, потому что я написал большую часть этого. – x0n

1

Для тех, кто работает NuGet v3 или выше (т.е. VS2015), если вы запустите команду Get-Package, вы получите это сообщение:

Эта комбинация/Параметр Command является устаревшим и будет удалены в следующей версии. Пожалуйста, рассмотрите возможность использования новой команды, которая заменяет его: «Найти-Пакет [-Id]».

Документация Find-Package объясняет новую команду, а также, и вы можете видеть, что больше не является параметром -list. К сожалению, кажется, что ни новый, ни старый не дадут вам зависимостей. Вы можете увидеть все свойства возвращается, как это:

Find-Package | Get-Member 

который будет возвращать:

TypeName: NuGet.PackageManagement.PowerShellCmdlets.PowerShellRemotePackage 

Name    MemberType Definition 
----    ---------- ---------- 
Equals   Method  bool Equals(System.Object obj) 
GetHashCode  Method  int GetHashCode() 
GetType   Method  type GetType() 
ToString   Method  string ToString() 
AllVersions  Property bool AllVersions {get;set;} 
AsyncLazyVersions Property Microsoft.VisualStudio.... snip 
Description  Property string Description {get;set;} 
Id    Property string Id {get;set;} 
LicenseUrl  Property string LicenseUrl {get;set;} 
Version   Property NuGet.SemanticVer.... snip 
Versions   Property System.Collections.... snip 
+3

Это правильно, но .. как вы теперь находите зависимости? – Noctis

+0

@Noctis Как я уже сказал в своем ответе, вы не можете сделать это сейчас с Powershell. Ничто не мешает вам развернуть [командлеты на GitHub] (https://github.com/NuGet/NuGet.Client/tree/dev/src/NuGet.Clients/PackageManagement.PowerShellCmdlets/Cmdlets), хотя и даже лучше, отправив тянуть запрос – DavidG

0
  1. Перейти к https://www.nuget.org/
  2. Поиск пакета, который вы хотите
  3. Прокрутить вниз до раздела Зависимости