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

11

我使用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个命令,但我认为Microsoft没有官方文档。

任何官方文档都会非常有用,其中包含DTE.ExecuteCommand的所有可用命令列表。

有什么建议吗?

4个回答

14

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

  • 打开Visual Studio的选项对话框
  • 选择环境/键盘页面
  • 您可以在"显示包含命令:"文本框中搜索特定命令,或者仅向下滚动其后面的列表。

输入图片说明


7

你可以使用即时窗口来完成它。只需键入“>”并开始键入命令。


6

这个问题有点老了,但是我最近遇到了同样的问题。我使用了 EnvDTE.DTE 的 Commands 集合 (在这里),可以用几行 PowerShell 获取。正如你所提到的,这个列表非常长,你可能需要过滤输出。

# 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()

这可以通过VS中的包管理器控制台直接完成,因为它提供了一个$dte实例,而无需在注册表中搜索正确的类型。适用于2015和2017年版本。 - StingyJack

4

2
链接已损坏。请尝试访问https://github.com/ligershark/VoiceExtension/blob/master/src/Resources/commands.txt - bbsimonbb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接