我們正在努力的VS擴展需要像在這個屏幕截圖的Visual Studio的命令列表:如何獲取Visual Studio命令的列表?
例子:
- Action.Add
- 行動。 Add.NETFrameworkLaunchCondition
- Action.AddAction
- ...等
我們在哪裏可以找到或如何訪問此列表?
我們正在努力的VS擴展需要像在這個屏幕截圖的Visual Studio的命令列表:如何獲取Visual Studio命令的列表?
例子:
我們在哪裏可以找到或如何訪問此列表?
的Visual Studio包含此列出...\Microsoft Visual Studio 9.0\Common7\IDE\*.vsk
您可以通過DTE接口來訪問它。通過GetService(typeof(SDTE))
(或其他適當的機制)獲得EnvDTE.DTE接口,然後:
EnvDTE.DTE dte = ...;
var commands = dte.Commands.Cast<EnvDTE.Command>();
foreach (var command in commands.OrderBy(c => c.Name))
{
Console.WriteLine(command.Name);
}
我應該提到這一點,可以說是相當緩慢的,所以它是最好的,如果你能避免...
Here是方便的Mads Kristensen爲他的VS VoiceExtension編譯的VS命令列表。
沒有真正的異步版本。 EnvDTE API被關聯到UI線程。你可以在後臺線程上運行它,但是你會透明地觸發封送到UI線程,這會使代碼比通常情況下更慢。在這一天結束的時候,列舉所有命令實際上就是那些「不這樣做」的事情之一。通常情況下,如果有人問這個問題,我會推回去挑戰他們爲什麼需要這樣做。 – 2014-12-11 19:09:42