Отображение зависимостей пакета NuGet
Когда вы показываете диалоговое окно "Управление пакетами NuGet", оно отображает доступные пакеты с гораздо большей информацией, чем, по-видимому, доступным, чем из "PowerShell".
В частности, есть ли способ из powershell, который будет перечислять доступные пакеты - или только один конкретный пакет - с пакетами, на которые они зависят, в идеале с их целевой версией (диапазонами)?
Ответы
Ответ 1
Да, есть.
# 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
Для всех, кто запускает Nuget v3 или выше (т.е. VS2015), если вы запустите команду Get-Package
, вам будет предоставлено это сообщение:
Эта комбинация команд/параметров устарела и будет удалена в следующей версии. Пожалуйста, рассмотрите возможность использования новой команды, которая ее заменяет: "Найти-Пакет [-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