【发布时间】:2012-01-27 17:51:16
【问题描述】:
当您显示“管理 NuGet 包”对话框时,它会显示可用的包,其中包含的信息明显多于 Powershell 提供的信息。
特别是,有没有一种方法可以从 powershell 列出可用的包 - 或者只是一个特定的包 - 以及它们所依赖的包,最好是它们的目标版本(范围)?
【问题讨论】:
标签: powershell nuget
当您显示“管理 NuGet 包”对话框时,它会显示可用的包,其中包含的信息明显多于 Powershell 提供的信息。
特别是,有没有一种方法可以从 powershell 列出可用的包 - 或者只是一个特定的包 - 以及它们所依赖的包,最好是它们的目标版本(范围)?
【问题讨论】:
标签: powershell nuget
我用过:
Find-Package <PackageName> -IncludeDependencies
【讨论】:
是的,有。
# 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]
【讨论】:
对于运行 Nuget v3 或更高版本(即 VS2015)的任何人,如果您运行命令 Get-Package,您将收到以下消息:
此命令/参数组合已被弃用,将在下一版本中删除。请考虑使用替换它的新命令:'Find-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
【讨论】:
Find-Package | Get-Member 在 v5.1 中返回 Microsoft.PackageManagement.Packaging.SoftwareIdentity 类型。这包括IEnumerable<string> 类型的Dependencies 成员。
【讨论】: