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

Обновлен: Ноябрь 2007

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

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

Имеется три различных типа мастеров:

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

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

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

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

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

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

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

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

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

7k3w6w59.alert_note(ru-ru,VS.90).gifПримечание.

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

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

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

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

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

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

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

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

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

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

    Imports EnvDTEImports EnvDTE80
    Public Class Class1
        Implements IDTWizard
    
    using System;
    using System.Collections.Generic;
    using System.Text;
    using EnvDTE;using EnvDTE80;using Windows.System.Forms;
    
    namespace MyNewWizard
    {
        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)
    
  4. В процедуру 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;
    
    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 вызывается при запуске мастера.

  5. Для Visual Basic щелкните правой кнопкой мыши проект в Обозревателе решений и выберите Свойства, чтобы открыть страницу Свойства проекта, перейдите на вкладку Компилировать и внизу страницы установите флажок Регистрация для COM-взаимодействия.

    Для Visual C# это действие выполнять не требуется.

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

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

    Для этого в меню Файл укажите Создать, а затем выберите Файл.

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

    7k3w6w59.alert_note(ru-ru,VS.90).gifПримечание.

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

  8. Добавьте следующий код в файл MyNewWizard.vsz:

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

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

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

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

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

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

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

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

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

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

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

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

    –или–

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

См. также

Задачи

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

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

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

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

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

Ссылки

IDTWizard

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

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

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