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


Справочник по схеме манифеста шаблона Visual Studio

Эта схема описывает формат файлов манифеста шаблона Visual Studio (VSTMAN), созданных для шаблонов проектов или элементов Visual Studio. Схема также описывает расположение и другие важные сведения о шаблоне.

: так как есть отдельные каталоги элементов и шаблонов проекта, манифест никогда не должен иметь сочетание шаблонов элементов и проектов.

Важно!

Этот манифест доступен начиная с Visual Studio 2017.

Элемент VSTemplateManifest

Корневой элемент манифеста.

Атрибуты

  • Версия: строка, представляющая версию манифеста шаблона. Обязательно.

  • Языковой стандарт: строка, представляющая языковой стандарт или языковые параметры манифеста шаблона. Значение языкового стандарта применяется ко всем шаблонам. Для каждого языкового стандарта необходимо использовать отдельный манифест. Необязательно.

Дочерние элементы

  • VSTemplateContainer Необязательный.

  • VSTemplateDir Необязательный.

Родительский элемент

Нет.

VSTemplateContainer

Контейнер элементов манифеста шаблона. Манифест содержит один контейнер шаблона для каждого определенного шаблона.

Атрибуты

VSTemplateType: строковое значение, указывающее тип шаблона ("Project"или"Item""ProjectGroup"). Обязательное поле

Дочерние элементы

  • RelativePathOnDisk: относительный путь к файлу шаблона на диске. Это расположение также определяет размещение шаблона в дереве шаблонов, показанном в диалоговом окне "Новый проект " или "Новый элемент ". Для шаблонов, развернутых как каталог и отдельные файлы, этот путь относится к каталогу, содержаму файлы шаблона. Для шаблонов, развернутых как ZIP-файл, этот путь должен быть путь к ZIP-файлу.

  • **VSTemplateHeader: элемент TemplateData , описывающий заголовок.

Родительский элемент

VSTemplateManifest

VSTemplateDir

Описывает каталог, в котором расположен шаблон. Манифест может содержать несколько записей VSTemplateDir для предоставления локализованного имени и сортировки каталогов для управления их внешним видом в дереве категорий шаблонов.

Из-за их проектирования записи VSTemplateDir должны отображаться только в указанных манифестах, отличных от языкового стандарта.

Атрибуты

Нет.

Дочерние элементы

  • RelativePath: путь к шаблону. Для всех манифестов может быть только одна запись на путь, поэтому первый будет выиграть для всех манифестов.

  • LocalizedName: элемент NameDescriptionIcon , указывающий локализованное имя. Необязательно.

  • SortOrder: строка, указывающая порядок сортировки. Необязательно.

  • ParentFolderOverrideName: переопределенное имя родительской папки. Необязательно. Этот элемент имеет атрибут Name , представляющий строковое значение, указывающее имя.

Родительский элемент

VSTemplateManifest

NameDescriptionIcon

Задает имя и описание, возможно, для локализованных шаблонов. См . раздел LocalizedName выше.

Атрибуты

  • Пакет: строковое значение, указывающее пакет. Необязательно.

  • Идентификатор: строковое значение, указывающее идентификатор. Необязательно.

Дочерние элементы

Нет.

Родительский элемент

Локализованное имя

Примеры

Следующий код является примером файла VSTMAN шаблона проекта.

<VSTemplateManifest Version="1.0" Locale="1033" xmlns="http://schemas.microsoft.com/developer/vstemplatemanifest/2015">
  <VSTemplateContainer TemplateType="Project">
    <RelativePathOnDisk>CSharp\1033\TestProjectTemplate</RelativePathOnDisk>
    <TemplateFileName>TestProjectTemplate.vstemplate</TemplateFileName>
    <VSTemplateHeader>
      <TemplateData xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
        <Name>TestProjectTemplate</Name>
        <Description>TestProjectTemplate</Description>
        <Icon>TestProjectTemplate.ico</Icon>
        <ProjectType>CSharp</ProjectType>
        <RequiredFrameworkVersion>2.0</RequiredFrameworkVersion>
        <SortOrder>1000</SortOrder>
        <TemplateID>aac0aeea-7883-4003-992f-937d53d70ab1</TemplateID>
        <CreateNewFolder>true</CreateNewFolder>
        <DefaultName>TestProjectTemplate</DefaultName>
        <ProvideDefaultName>true</ProvideDefaultName>
      </TemplateData>
    </VSTemplateHeader>
  </VSTemplateContainer>
</VSTemplateManifest>

Следующий код является примером файла VSTMAN шаблона элемента.

<VSTemplateManifest Version="1.0" Locale="1033" xmlns="http://schemas.microsoft.com/developer/vstemplatemanifest/2015">
  <VSTemplateContainer TemplateType="Item">
    <RelativePathOnDisk>CSharp\1033\ItemTemplate1</RelativePathOnDisk>
    <TemplateFileName>ItemTemplate1.vstemplate</TemplateFileName>
    <VSTemplateHeader>
      <TemplateData xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
        <Name>ItemTemplate1</Name>
        <Description>ItemTemplate1</Description>
        <Icon>ItemTemplate1.ico</Icon>
        <TemplateID>bfeadf8e-a251-4109-b605-516b88e38c8d</TemplateID>
        <ProjectType>CSharp</ProjectType>
        <RequiredFrameworkVersion>2.0</RequiredFrameworkVersion>
        <NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
        <DefaultName>Class.cs</DefaultName>
      </TemplateData>
    </VSTemplateHeader>
  </VSTemplateContainer>
</VSTemplateManifest>