Можно ли программно добавить новую именованную команду в расширяемость Visual Studio?

Visual Studio 2015.

Раньше я использовал AddNamedCommand2 в надстройке. Теперь, когда надстройки исчезли, я пытаюсь научиться делать vsix.

Я хотел бы иметь возможность программно добавлять именованные команды.

Это все еще возможно? Раньше я использовал отражение, чтобы добавить кучу именованных команд в Visual Studio в надстройке. Под этим я подразумеваю команды, которые я могу запустить из окна команд с указанным именем, например, "Penguin.TestCommand".

1 ответ

Решение

Обратите внимание, что предпочтительным способом создания команд является файл.vsct, хотя у вас нет полного контроля над именем (префиксом). Чтобы получить "Пингвин". Префикс вашего расширения должен был бы создать верхнее меню, которое излишне, если ваше расширение имеет только одну команду.

Программно используйте IVsProfferCommands3.AddNamedCommand. В версиях Visual Studio до VS 2013 (в комплекте) существует ошибка, заключающаяся в том, что при создании команды она всегда отключена, и вы ничего не можете сделать, чтобы включить ее. Я сообщил об этом в частном порядке в Microsoft, и они сказали мне, что ошибка была исправлена ​​для VS 2015, хотя я ожидаю проверки и напишу статью в своем блоге, чтобы документировать ее.

РЕДАКТИРОВАТЬ: Смотрите полный пример "PackageCommandsCreatedByCode", который я создал для VS 2015: https://github.com/visualstudioextensibility/VSX-Samples

Другие вопросы по тегам