Получить полный список доступных команд для DTE.ExecuteCommand

Я использую VS2010 и Addin, используя DTE.ExecuteCommand и такие команды, как Build, Build.Cancel, Build.RebuildSolution и т. д.

Вы можете получить команду с помощью DTE.Commands.Item("xxx") и предположить, доступна ли она с помощью Command.IsAvailable. Список команд находится в окне Tools, Options, Environment, Keyboard.

Кроме того, как вы знаете, DTE.ExecuteCommand принимает две строки в качестве параметров.

Первый — это имя команды (например, Action.CreateNewShortcut), а второй — аргументы, которые принимает команда.

Проблема в том, что для некоторых команд требуется переменное количество аргументов, порядок которых я не знаю и т. д.

Например, я предполагаю, что для Action.CreateNewShortcut требуется как минимум два аргумента: действие, которое будет выполняться при выполнении ярлыка (Build.RebuildSolution), и сам ярлык (Alt+O).

В VS более 4k команд. но, я думаю, у Microsoft нет официальной документации по этому поводу.

Была бы очень полезна любая официальная документация с ПОЛНЫМ списком доступных команд для DTE.ExecuteCommand

Какие-либо предложения?


person Kiquenet    schedule 13.12.2012    source источник


Ответы (4)


Список команд можно просмотреть, выполнив следующую процедуру:

  • Откройте диалоговое окно параметров в Visual Studio.
  • Выберите страницу Окружающая среда/Клавиатура.
  • Вы можете выполнить поиск определенной команды в поле Показать команды, содержащие: или просто прокрутить список за ней.

введите здесь описание изображения

person wip    schedule 22.10.2013

Вы можете использовать немедленное окно, чтобы сделать это. Просто введите '>' и начните вводить команду.

person Mic    schedule 01.07.2013

Вопрос немного устарел, но недавно я столкнулся с тем же. Я использовал коллекцию Commands из EnvDTE.DTE (здесь ), который можно получить в несколько строк 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()
person Florent DUGUET    schedule 21.12.2016
comment
Это можно сделать прямо через консоль диспетчера пакетов в VS, поскольку она предоставляет экземпляр $dte без необходимости отбирать реестр для нужного типа. Работает в 2015 и 2017 годах. - person StingyJack; 17.02.2018

Вот список, который Мадс Кристенсен использует для своей VoiceExtension:

https://github.com/ligershark/VoiceExtension/blob/master/src/Resources/commands.txt

person wip    schedule 22.10.2013
comment
Ссылка не работает. Попробуйте github.com/ligershark/VoiceExtension/blob/master/src /Ресурсы/ - person bbsimonbb; 17.05.2016