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


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

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

Файл 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-файлов для запуска мастеров

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

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