I use VS2010 and Addin, using DTE.ExecuteCommand and commands like Build, Build.Cancel, Build.RebuildSolution, etc.
You can get a command with DTE.Commands.Item("xxx") and guess if it is available with Command.IsAvailable. The list of commands is in the Tools, Options window, Environment, Keyboard section.
Too, as you know DTE.ExecuteCommand takes two strings as parameters.
The first one is the name of the command (for example, Action.CreateNewShortcut) and the second one is the arguments that the command takes.
The problem is that some commands require a variable number of arguments and I don't know the order, etc.
For example I guess Action.CreateNewShortcut needs at least two arguments: the action to be run when the shortcut is executed (Build.RebuildSolution) and the shortcut itself ( Alt+O).
There are over 4k commands in VS. but Microsoft hasn't official documentation about it, I think.
It would be very useful any official documentation with FULL list of available commands for DTE.ExecuteCommand
Any suggestions?
A list of commands can be examined by following this procedure:
- Open Visual Studio's Options Dialog Box
- Select the Environment/Keyboard page
- You can search for a specific command in the "Show commands containing:" box, or just scroll the list behind it.
You can use immediate window to do it. Simply type '>' and start typing command.
Question is a bit old, but I ran into the same recently. I used the Commands collection from EnvDTE.DTE (here), that can be retrieved in a few lines of power shell. As you mentionned, the list is very long, and you may want to filter the output.
# 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()
Here is the list that Mads Kristensen uses for his VoiceExtension add-in:
https://raw.github.com/ligershark/VoiceExtension/master/VoiceExtension/Resources/commands.txt