簡體   English   中英

如何從VSPackage以編程方式打開NuGet軟件包管理器GUI

[英]How to programmatically open the NuGet Package Manager GUI from a VSPackage

有沒有辦法從C#中實現的VSPackage以編程方式打開NuGet軟件包管理器GUI?

這個想法是允許用戶快速地從ErrorTask條目導航到可以解決特定問題的程序包管理器。

有兩種不同的方法可以做到這一點。

  1. 確定用於顯示工具窗口的命令,並使用IVsUIShell.PostExecCommand有效模擬選擇“工具” |“ Nuget程序包管理器” |“程序包管理器”控制台菜單項。

您將需要使用EnableVSIPLogging注冊表值來標識唯一標識菜單命令的guid:id對,如以下博客條目中所述:

使用EnableVSIPLogging來識別VS 2005 + SP1的菜單和命令

提示,而不是弄亂注冊表,可以考慮安裝Mads Kristensen的“ 擴展性工具 ”擴展,該擴展在IDE的“查看”菜單下添加了“啟用VSIP日志記錄”菜單項。 啟用此選項並重新啟動VS后,可以按住SHIFT + CTRL鍵,然后單擊“ Package Manager Console”菜單項,該菜單項將顯示一個診斷對話框,其中包含剛剛單擊的命令的guid和id。

  1. 標識工具窗口,並使用IVsUIShell.FindToolWindowEx檢索“程序包管理器控制台”工具窗口,並以編程方式顯示/激活它。

並非所有工具窗口的指南都已發布,但是您通常可以使用Paul Harrington的“ Component Diagnostics ”擴展來弄清楚它們。 安裝擴展程序后,可以通過“幫助” |“組件診斷”菜單項調用它。 在“組件診斷”對話框的左窗格中,您將要選擇“選擇和UIContext”類別。 在對話框的右窗格中,您將要選擇“實時上下文”選項卡。

選擇之后,切換回VS IDE,打開Package Manager Console工具窗口,然后在其中單擊以確保已激活。 您應該看到該工具窗口的上下文GUID顯示在該“實時上下文”窗格下。 在大多數情況下,UI上下文與唯一標識工具窗口的guid的值相同。

一旦確定了GUID,就可以使用IVsUIShell.FindToolWindowEx方法(如果需要,可以創建它)並檢索其IVsWindowFrame接口。 通過該IVsWindowFrame接口 ,您可以顯示和激活工具窗口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM