Добавление мастеров в диалоговые окна "Добавить элемент" и "Создать проект" при помощи файлов 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-файлов для запуска мастеров