2012-01-27 98 views
14

當您展示管理的NuGet軟件包對話框,它會顯示出比明顯高於從PowerShell中可用更多的信息可用的軟件包。顯示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中的列表依賴關係 – 2016-02-16 16:02:37

+0

這似乎不是PowerShell,它看起來像Visual Studio中的包管理器 – 2016-10-20 15:32:12

+8

@MichaelEakins Visual Studio中的NuGet包管理器窗口是作爲PowerShell主機實現的,因此它是* PowerShell。我知道這一點,因爲我寫了大部分內容。 – x0n 2016-10-24 13:46:13

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 
+3

這是正確的,但是..你現在如何找到依賴關係? – Noctis 2016-12-05 03:14:41

+0

@Noctis就像我在我的回答說,你不能使用PowerShell現在就這樣做。沒有什麼能阻止你在GitHub上分配[cmdlet](https://github.com/NuGet/NuGet.Client/tree/dev/src/NuGet.Clients/PackageManagement.PowerShellCmdlets/Cmdlets),或者甚至更好地提交一個拉請求 – DavidG 2016-12-05 11:34:57

相關問題