获取DTE.ExecuteCommand的可用命令的完整列表

时间:2012-12-13 07:58:01

标签: visual-studio-2010 command envdte

我使用VS2010和Addin,使用DTE.ExecuteCommand和Build,Build.Cancel,Build.RebuildSolution等命令。

您可以使用DTE.Commands.Item(“xxx”)获取命令,并猜测它是否可用于Command.IsAvailable。命令列表位于工具,选项窗口,环境,键盘部分。

如你所知,DTE.ExecuteCommand需要两个字符串作为参数。

第一个是命令的名称(例如,Action.CreateNewShortcut),第二个是命令所采用的参数。

问题是某些命令需要可变数量的参数,而我不知道顺序等。

例如,我猜Action.CreateNewShortcut至少需要两个参数:执行快捷方式时要运行的操作(Build.RebuildSolution)和快捷方式本身(Alt + O)。

VS中有超过4k的命令。但我认为微软没有关于它的官方文档。

任何包含DTE.ExecuteCommand可用命令的完整列表的官方文档都非常有用

有什么建议吗?

4 个答案:

答案 0 :(得分:10)

可以按照以下步骤检查命令列表:

  • 打开Visual Studio的Options Dialog Box
  • 选择环境/键盘页面
  • 您可以在“显示包含以下内容的命令”框中搜索特定命令,或者只滚动其背后的列表。

答案 1 :(得分:6)

您可以使用即时窗口来执行此操作。只需输入'>'并开始输入命令。

答案 2 :(得分:4)

答案 3 :(得分:4)

问题有点旧,但我最近碰到了同样的问题。我使用了EnvDTE.DTE(here)中的Commands集合,可以在几行power shell中检索。正如您所提到的,列表很长,您可能希望过滤输出。

# Get Visual Studio 2015 type
# -- find other version in registry HKEY_CLASSES_ROOT\VisualStudio.DTE.x.x
$type = [System.Type]::GetTypeFromProgID("VisualStudio.DTE.14.0")
# Create an instance of EnvDTE.DTE - actually launches a devenv.exe process
$dte = [System.Activator]::CreateInstance($type,$true)
# list of Commands is output simply when typing : Can be very long
$dte.Commands
# Will output the name of the command, its GUID and other attributes
# Close process when done
$dte.Quit()