Поделиться через


Пошаговое руководство. Создание мастера

В Visual Studio 2013 надстройки являются нерекомендуемыми. Рекомендуется обновить надстройки до расширений VSPackage. Дополнительные сведения о том, как обновить надстройки, см. в разделе Часто задаваемые вопросы. Преобразование надстроек в расширения VSPackage.

Мастера, такие как Мастер надстройки, — это программы, которые шаг за шагом проводят пользователя через последовательность действий для выполнения сложной, повторяющейся или трудновыполнимой задачи. Например, в Windows мастера используются для установки подключения к сетевым ресурсам, подключения к принтерам и т.д.

В Visual Studio мастера, как правило, задают ряд вопросов, запрашивая ввод пользователя, а затем используют результаты для создания кода. При этом мастера не всегда имеют пользовательский интерфейс. Их можно запрограммировать для незаметного создания кода в фоновом режиме.

Существует три различных типа мастеров.

  • Мастеры создания проекта. Как говорит само название, эти мастеры служат для создания нового кода для определенного типа проекта в качестве отправной точки для пользователя, с которой можно начать добавлять собственный код. Это наиболее часто используемый тип мастера.

  • Мастеры добавления нового элемента. Эти мастеры служат для добавления в проект новых элементов, таких как веб-формы, текстовые файлы, HTML-страницы, XML-страницы и т. д.

  • Пользовательские мастера. Эти мастера не вызываются из диалогового окна. Они вызываются непосредственно из надстроек, макросов или других типов кода. У них может быть, а может и отсутствовать пользовательский интерфейс. В любом случае, они создают код. Этот тип мастера используется реже всего.

Вне зависимости от типа мастера все они имеют общие черты.

  • Они являются объектами .NET, реализующими интерфейс IDTWizard и имеющими связанный метод, Execute, содержащий код, который должен выполняться мастером.

  • Для отображения мастеров в Visual Studio используются файлы VSZ.

  • Все они создают код или выполняют какую-либо другую задачу.

Внешний вид элементов в создаваемых мастерах можно контролировать. Мастера часто состоят из одного или нескольких окон или страниц. Страницы могут содержать описательное изображение, например, в верхней или с левой стороны страницы, описание-надпись, инструкции и область, в которую могут быть помещены элементы навигации, такие как кнопки Назад и Далее.

Процесс создания мастеров в Visual C++ несколько отличается от создания стандартных мастеров Visual Studio. Дополнительные сведения о создании мастеров для Visual C++ см. в разделах Разработка мастера и Создание пользовательского мастера.

Примечание

На конкретном компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях.Эти элементы определяются используемым выпуском Visual Studio и его параметрами.Дополнительные сведения см. в разделе Настройка параметров разработки в Visual Studio.

Пример простого макроса

Мастера надстроек Visual Studio

На этом рисунке показана панель Мастера надстроек — мастера типа "создание проекта", представляющего собой последовательность шагов для создания надстройки. Внешний вид мастеров можно изменять, но Мастер надстроек является хорошим примером стиля стандартного типа мастера. Созданные мастера становятся доступными шаблонами в диалоговых окнах Новый проект или Добавление нового элемента.

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

Чтобы создать простой мастер в Visual Basic и Visual C#

  1. Запустите Visual Studio от имени администратора. Регистрация мастера требует обновления реестра, поэтому необходим этот уровень привилегий.

  2. Создайте новый проект библиотеки классов и назовите его MyNewWizard.

  3. Добавьте ссылки на EnvDTE и EnvDTE80 к проекту.

    Для этого щелкните проект правой кнопкой мыши и выберите Добавить, Ссылка. На вкладке ".NET" диалогового окна Ссылка щелкните EnvDTE и EnvDTE80, затем нажмите ОК.

В модуле класса включите ссылки на EnvDTE и EnvDTE80 и реализуйте интерфейс IDTWizard. Для этого примера Visual C# необходимо также добавить ссылку на System.Windows.Forms и System.Runtime.InteropServices.

Imports EnvDTE 
Imports EnvDTE80
Public Class Class1
    Implements IDTWizard
using System;
using System.Collections.Generic;
using System.Text;
using EnvDTE; 
using EnvDTE80; 
using System. Windows.Forms;

using System.Runtime.InteropServices;

namespace MyNewWizard
{

[ComVisible(true)]

[Guid("20184B81-7C38-4E02-A1E3-8D564EEC2D25"),

ProgId("MyNewWizard.Class1")]

    public class Class1 : IDTWizard
    {
    }
}

При добавлении оператора Implements в Visual Basic поместите курсор в конец строки и нажмите ВВОД для автоматического создания процедуры метода Execute. При этом для Visual C# необходимо добавить процедуру Execute вручную:

public class Class1 : IDTWizard
    {
    public void Execute(object Application,  
        int hwndOwner, ref object[] contextParams,  
        ref object[] customParams,  
        ref EnvDTE.wizardResult retval)
  1. В процедуру Execute добавьте код, который должен выполняться мастером. В этом примере будет добавлено простое окно сообщения.

    Должно получиться следующее:

    Imports EnvDTE
    Imports EnvDTE80
    
    Public Class Class1
        Implements IDTWizard
    
        Public Sub Execute(ByVal Application As Object, ByVal _
        hwndOwner As Integer, ByRef ContextParams() As Object, ByRef _
        CustomParams() As Object, ByRef retval As EnvDTE.wizardResult) _
        Implements EnvDTE.IDTWizard.Execute
            MsgBox("The wizard is now running.")
        End Sub
    End Class 
    
    using System.Text;
    using EnvDTE;
    using EnvDTE80;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
    
    namespace MyNewWizardCS
    {
        public class Class1 : IDTWizard
        {
    
        public void Execute(object Application, 
            int hwndOwner, ref object[] contextParams, 
            ref object[] customParams, 
            ref EnvDTE.wizardResult retval)
        {
            MessageBox.Show("The wizard is now running.");
        }
    }
    
    }
    

    Процедура Execute вызывается при запуске мастера.

  2. В обозревателе решений щелкните правой кнопкой мыши проект и выберите команду Свойства, чтобы открыть страницу Свойства проекта, перейдите на вкладку Построение и внизу страницы установите флажок Регистрация для COM-взаимодействия.

  3. В файле AssemblyInfo.cs найдите атрибут ComVisible и присвойте ему значение true.

  4. Соберите проект, чтобы создать DLL-библиотеку классов, выбрав в меню Сборка команду Собрать решение.

  5. Создайте текстовый файл VSZ для мастера с именем MyNewWizard.vsz.

    Для этого создайте копию существующего VSZ-файла (например, любого файла в каталоге <Visual Studio Install Directory>\VC#\CSharpProjectItems\Windows Forms), а затем переименуйте копию в "MyNewWizard.vsz".

    VSZ-файл — это текстовый файл, позволяющий Visual Studio распознавать мастер и отображать его в диалоговых окнах Новый проект или Добавление нового элемента. Параметру Wizard необходимо присвоить progID (Project.Classname) проекта или GUID. Дополнительные сведения см. в разделе Настройка VSZ-файлов для запуска мастеров.

    Примечание

    Дополнительно можно создать файл VSDIR для мастера.Этот файл содержит сведения, отображаемые в качестве описания мастера в диалоговых окнах Новый проект или Новый файл.В нем можно также указать значок и определить его местоположение в списке.Дополнительные сведения см. в разделе Добавление мастеров в диалоговые окна "Добавить элемент" и "Создать проект" при помощи файлов VSDIR.

  6. Замените содержимое файла MyNewWizard.vsz следующим кодом.

    VSWizard 7.0
    Wizard=MyNewWizard.Class1
    Param=First Item
    Param=Second Item
    
  7. Сохраните новый VSZ-файл в каталоге, где должен располагаться мастер.

    В данном примере мастер должен отображаться в диалоговом окне Добавление нового элемента для проектов Visual Basic, поэтому VSZ-файл необходимо сохранить в следующем каталоге: <Visual Studio Install Directory>\VB\VBProjectItems.

  8. Выйдите из среды Visual Studio и запустите ее повторно.

    При этом Visual Studio считает новый VSZ-файл.

  9. Создайте новый проект Visual Basic, такой как проект приложения Windows.

  10. Щелкните проект правой кнопкой мыши, выберите Добавить, затем выберите Создать элемент.

    В диалоговом окне Добавить новые элементы должен появиться новый мастер (MyNewWizard).

  11. Щелкните мастер и нажмите кнопку Добавить.

    Появится сообщение "Мастер выполняется".

Чтобы отобразить пользовательский значок для нового мастера

  • Поместите файл значка с таким же именем базового файла, что и имя DLL-файла, но с расширением ICO, в каталог с файлом мастера.

    Например, если мастер называется MyNewWizard.dll, то именем файла значка ICO должно быть MyNewWizard.ico.

    - или -

  • Если создан файл VSDir, укажите в нем путь к файлу значка (ICO).

См. также

Задачи

Практическое руководство. Создание надстройки

Ссылки

IDTWizard

Основные понятия

Диаграмма модели объектов автоматизации

Добавление мастеров в диалоговые окна "Добавить элемент" и "Создать проект" при помощи файлов VSDIR

Настройка VSZ-файлов для запуска мастеров

Другие ресурсы

Создание надстроек и мастеров

Команды и переключатели Visual Studio