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


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

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

Файла VSDir по умолчанию не существует.Если он имеется, то Visual Studio считывает и добавляет его содержимое в диалоговые окна.Если файл недоступен, то отображаются шаблоны и мастера по умолчанию.В одном каталоге можно разместить несколько файлов VSDir, тогда все их содержимое будет добавлено в диалоговые окна.Как правило, отдельный файл VSDir содержит записи для нескольких мастеров, папок и шаблонов.Каждая запись в файле отделяется последовательностью знаков перехода на новую строку.Вертикальная черта (|) разделяет поля внутри одной записи.Любое необязательное поле, для которого нет определенного значения, должно содержать ноль (0) или пробел в качестве заполнителя.Строки, вводимые в поля, могут не заключаться в кавычки.

Компоненты файла VSDir

Ниже приведены примеры файлов VSDir.Первый пример ссылается на один мастер, созданный в разделе Пошаговое руководство. Создание мастера:

MyNewWizard.vsz| |A New Wizard|1|My New Wizard|C:\Addins\MyNewWizard\MyNewWizard\bin\Debug| | |MyNewWizard99

Другой пример файла VSDir ссылается на несколько файлов мастера VSZ наряду с сопутствующими сведениями, относящимися к каждому мастеру (как описано далее в этом разделе).Они отличаются от предыдущего файла VSDir тем, что ссылаются на строки как на идентификатор ресурсов, а не строки литералов.Кроме того, в них используются GUID для ссылки на библиотеки DLL.

..\..\Projects\csharp building blocks\BusinessFacade.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5015|10|#5022|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|127|0|Project
..\..\Projects\csharp building blocks\BusinessRules.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5016|20|#5023|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|128|0|Project
..\..\Projects\csharp building blocks\DataAccess.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5017|30|#5024|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|129|0|Project
..\..\Projects\csharp building blocks\SystemFrameworks.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5018|40|#5025|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|130|0|Project
..\..\Projects\csharp building blocks\WebService.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5019|50|#5026|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4547|1|WebService|Web
..\..\Projects\csharp building blocks\WebUI.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5020|60|#5027|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|131|1|WebUI|web
..\..\Projects\csharp building blocks\WinUI.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5021|70|#5028|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|132|0|Project

В файле VSDir для каждой записи могут быть указаны следующие поля.

Поле

Значение

RelPathName

Обязательный.Имя файла мастера VSZ, например, MyWizard.vsz, относительно каталогу установки Visual Studio.

{clsidPackage}

Необязательный.GUID, предоставляющий продукт (например, Visual C++), DLL которого содержит локализованные ресурсы.Обычно для файлов VSDir, соответствующих мастерам сторонних производителей, это поле оставляется пустым.

LocalizedName

Необязательный.Локализуемое имя мастера или шаблона, которое появляется в диалоговом окне Добавить элемент.Это может быть строка либо идентификатор ресурса в форме #ResID.

SortPriority

Обязательный.Целое число, предоставляющее порядок сортировки и относительный приоритет мастера, причем 1 соответствует наивысшему приоритету.Например, если этот элемент равен "1", то он будет отображаться после остальных мастеров с 1-м приоритетом и до всех мастеров со 2-м и более низким приоритетами.

Описание

Обязательный.Локализуемое описание шаблона или мастера, которое будет отображаться в диалоговом окне Добавить элемент при выборе элемента.Это может быть строка либо идентификатор ресурса в форме #ResID.Применяется только к файлам шаблонов, но не к папкам.

DLLPath или {clsidPackage}

Обязательный.Задает полный путь к файлу DLL или EXE, либо GUID продукта, имеющего файл DLL, содержащий значок, загружаемый для мастера.Значок загружается как ресурс из файла DLL/EXE, используя заданный IconResourceId.При определении местонахождения значка этот параметр переопределяет {clsidPackage}, если он указан.Применяется только к файлам шаблонов, но не к папкам.

IconResourceId

Необязательный.Идентификатор ресурса в файле DLL, определяющий отображаемый значок.Если значок не определен, среда подставляет значок по умолчанию для файлов с расширением, как у этого элемента.Применяется только к файлам шаблонов, но не к папкам.

Флаги

Необязательный.См. ниже описание Flags и соответствующую таблицу.Применяется только к файлам шаблонов, но не к папкам.

SuggestedBaseName

Обязательный.Имя по умолчанию для мастера, отображаемое в поле Имя диалогового окна.Это может быть строка либо идентификатор ресурса в форме #ResID.Если имя не является уникальным, среда добавит в его конец целое число.Например, MyFile.aspx будет изменено на MyFile1.aspx.Если имя не указано, используется строка "Project".Применяется только к файлам шаблонов, но не к папкам.

  • Примечания
    Любое необязательное поле, для которого нет определенного значения, должно содержать ноль (0) в качестве заполнителя.

    Если локализованное имя не указано, используется имя, представляющее собой относительный путь.

    Если значок не определен, интегрированная среда разработки подставляет значок по умолчанию для файлов с этим расширением.

    Если предлагаемое базовое имя не указано, используется строка "Project".

  • Флаги
    Включает группу побитовых флагов, используемых для включения или отключения полей Имя и Расположение в диалоговом окне Добавить элемент.То есть, когда пользователь выбирает Добавить новый элемент в меню Добавить, проект определяет, следует ли отображать имя и расположение в панели Шаблоны, а флаги определяют, будут ли имя и расположение доступны пользователю.

    Значение Flags следует установить равным сумме отдельных значений.Так, 33 эквивалентно VSDIRFLAG_NonLocalTemplate | VSDIRITEM_DisableLocationField.

    Название флага

    Десятичное значение

    Описание

    VSDIRFLAG_NonLocalTemplate

    1

    Использование нелокального поведения пользовательского интерфейса и механизмов сохранения.

    VSDIRFLAG_BlankSolution

    2

    Создайте новое (пустое) решение.Не создавайте проект.

    VSDIRFLAG_DisableBrowseButton

    4

    Отключение кнопки "Обзор" для проекта или элемента.

    VSDIRFLAG_DontAddDefExtension

    8

    Не приписывать расширение по умолчанию к имени элемента.(Эта настройка неприменима к проектам.)

    VSDIRFLAG_DisableLocationField

    32

    Отключение поля расположения для данного проекта или элемента.

    VSDIRFLAG_DontInitNameField

    4096

    Запрет инициализации поля имени данного проекта или элемента допустимым именем.

    VSDIRFLAG_DisableNameField

    8192

    Отключение поля имени для данного проекта или элемента.

См. также

Задачи

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

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

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

Разработка мастера

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

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

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