2012-12-13 7 views
7

J'utilise VS2010 et Addin, en utilisant DTE.ExecuteCommand et des commandes comme Construire, Build.Cancel, Build.RebuildSolution, etc.Obtenir la liste complète des commandes disponibles pour DTE.ExecuteCommand

Vous pouvez obtenir une commande avec DTE. Commands.Item ("xxx") et devinez si elle est disponible avec Command.IsAvailable. La liste des commandes se trouve dans la fenêtre Outils, Options, Environnement, Clavier. Aussi, comme vous le savez, DTE.ExecuteCommand prend deux chaînes comme paramètres.

Le premier est le nom de la commande (par exemple, Action.CreateNewShortcut) et le second est les arguments que la commande prend.

Le problème est que certaines commandes nécessitent un nombre variable d'arguments et je ne sais pas l'ordre, etc.

Par exemple, je suppose que Action.CreateNewShortcut a besoin d'au moins deux arguments: l'action à exécuter lorsque le raccourci est exécuté (Build.RebuildSolution) et le raccourci lui-même (Alt + O).

Il y a plus de 4k commandes dans VS. mais Microsoft n'a pas de documentation officielle à ce sujet, je pense.

Il serait très utile de la documentation officielle avec la liste complète des commandes disponibles pour DTE.ExecuteCommand

Toutes les suggestions?

Répondre

6

Vous pouvez utiliser la fenêtre immédiate pour le faire. Tapez simplement '>' et commencez à taper la commande.

8

Une liste des commandes peut être examiné en suivant cette procédure:

  • Options Dialog Box est ouvert Visual Studio
  • Sélectionnez le Environnement/Clavier page
  • Vous pouvez rechercher une commande spécifique dans le "Afficher les commandes contenant:" boîte, ou simplement faire défiler la liste derrière elle.
4

La question est un peu ancienne, mais j'ai rencontré la même chose récemment. J'ai utilisé la collection Commands de EnvDTE.DTE (here), qui peut être récupérée dans quelques lignes de shell de puissance. Comme vous l'avez mentionné, la liste est très longue et vous pouvez vouloir filtrer la sortie.

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

Cela peut être fait directement à travers la console du gestionnaire de paquets dans VS, car il fournit une instance de $ dte sans avoir à réécrire le registre pour le bon type. Fonctionne en 2015 et 2017. – StingyJack

Questions connexes