Создание расширения с помощью команды меню
В этом пошаговом руководстве показано, как создать расширение с помощью команды меню, которая запускает Блокнот.
Создание команды меню
Создайте проект VSIX с именем FirstMenuCommand. Шаблон проекта VSIX можно найти в диалоговом окне "Новый проект ", выполнив поиск vsix.
Когда проект откроется, добавьте пользовательский шаблон элемента командной строки с именем FirstCommand. Щелкните правой кнопкой мыши узел проекта в Обозревателе решений, а затем выберите Добавить>Новый элемент. В диалоговом окне "Добавление нового элемента" перейдите к расширяемости элементов>C# и выберите команду. В поле "Имя" в нижней части окна измените имя файла команды на FirstCommand.cs.
Выполните сборку решения и запустите отладку.
Появится экспериментальный экземпляр Visual Studio. Дополнительные сведения о экспериментальном экземпляре см. в разделе "Экспериментальный экземпляр".
В экспериментальном экземпляре откройте окно "Управление>расширениями ". Здесь должно появиться расширение FirstMenuCommand . (При открытии Управление расширениями в рабочем экземпляре Visual Studio не отображается FirstMenuCommand).
Теперь перейдите в меню "Сервис" в экспериментальном экземпляре. Вы увидите команду Invoke FirstCommand . На этом этапе команда открывает окно сообщения, которое говорит FirstCommand Inside FirstMenuCommand.FirstCommand.MenuItemCallback(). Мы посмотрим, как на самом деле запустить Блокнот из этой команды в следующем разделе.
Изменение обработчика команд меню
Теперь обновим обработчик команд, чтобы запустить Блокнот.
Остановите отладку и вернитесь к рабочему экземпляру Visual Studio. Откройте файл FirstCommand.cs и добавьте следующую инструкцию using:
using System.Diagnostics;
Найдите частный конструктор FirstCommand. Это место, где команда подключается к службе команд и указан обработчик команд. Измените имя обработчика команд на StartNotepad следующим образом:
private FirstCommand(AsyncPackage package, OleMenuCommandService commandService) { this.package = package ?? throw new ArgumentNullException(nameof(package)); commandService = commandService ?? throw new ArgumentNullException(nameof(commandService)); CommandID menuCommandID = new CommandID(CommandSet, CommandId); // Change to StartNotepad handler. MenuCommand menuItem = new MenuCommand(this.StartNotepad, menuCommandID); commandService.AddCommand(menuItem); }
Execute
Удалите метод и добавьтеStartNotepad
метод, который просто запустит Блокнот:private void StartNotepad(object sender, EventArgs e) { ThreadHelper.ThrowIfNotOnUIThread(); Process proc = new Process(); proc.StartInfo.FileName = "notepad.exe"; proc.Start(); }
Теперь попробуйте его. При запуске отладки проекта и нажатии кнопки "Сервис>вызова FirstCommand" появится экземпляр Блокнота.
Экземпляр класса можно использовать Process для запуска любого исполняемого файла, а не только блокнота. Попробуйте,
calc.exe
например.
Очистка экспериментальной среды
Если вы разрабатываете несколько расширений или просто изучаете результаты с различными версиями кода расширения, экспериментальная среда может перестать работать так, как это должно. В этом случае необходимо запустить скрипт сброса. Он называется сбросом экспериментального экземпляра Visual Studio и поставляется в составе пакета SDK Для Visual Studio. Этот скрипт удаляет все ссылки на расширения из экспериментальной среды, чтобы начать с нуля.
Этот скрипт можно получить одним из двух способов:
На рабочем столе найдите экспериментальный экземпляр Visual Studio.
Выполните следующую команду в командной строке:
<VSSDK installation>\VisualStudioIntegration\Tools\Bin\CreateExpInstance.exe /Reset /VSInstance=<version> /RootSuffix=Exp && PAUSE
Развертывание расширения
Теперь, когда у вас есть расширение средства, работающее так, как вы хотите, пришло время подумать о его совместном использовании с друзьями и коллегами. Это легко, если они установлены Visual Studio 2015. Все, что вам нужно сделать, — отправить им созданный VSIX-файл . (Не забудьте создать его в режиме выпуска.)
Vsix-файл для этого расширения можно найти в каталоге bin FirstMenuCommand. В частности, если вы создали конфигурацию выпуска, она будет находиться в:
<каталог> кода\FirstMenuCommand\FirstMenuCommand\bin\Release\FirstMenuCommand.vsix
Чтобы установить расширение, ваш друг должен закрыть все открытые экземпляры Visual Studio, а затем дважды щелкните VSIX-файл, который открывает установщик VSIX. Файлы копируются в каталог %LocalAppData%\Microsoft\VisualStudio<version>\Extensions .
Когда ваш друг снова открывает Visual Studio, они найдут расширение FirstMenuCommand в расширениях и обновлениях инструментов>. Они также могут перейти к расширениям и обновлениям , чтобы удалить или отключить расширение.
Следующие шаги
В этом пошаговом руководстве показана лишь небольшая часть того, что можно сделать с расширением Visual Studio. Ниже приведен краткий список других (достаточно простых) действий, которые можно сделать с помощью расширений Visual Studio:
Вы можете выполнить много других действий с помощью простой команды меню:
Добавление собственного значка: добавление значков в команды меню
Изменение текста команды меню: изменение текста команды меню
Добавление сочетания клавиш в команду: привязка сочетаний клавиш к элементам меню
Добавление различных типов команд, меню и панелей инструментов: расширение меню и команд
Добавление окон инструментов и расширение встроенных окон инструментов Visual Studio: расширение и настройка окон инструментов
Добавление IntelliSense, предложений кода и других функций в существующие редакторы кода: расширение редакторов и языковых служб
Добавление параметров и страниц свойств и параметров пользователя в расширение: расширение свойств и окно свойства, а также расширение параметров и параметров пользователя
Другие виды расширений требуют немного больше работы, например создание нового типа проекта (расширение проектов) или создание нового типа редактора (создание пользовательских редакторов и конструкторов).