Visual Studio 模板清单架构参考

此架构描述为 Visual Studio 项目或项模板生成的 Visual Studio 模板清单 (.vstman) 文件的格式。 该架构还描述了有关模板的位置和其他相关信息。

:由于存在单独的项和项目模板目录,清单不应混合使用项和项目模板。

重要

从 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

属性

  • :一个指定包的字符串值。 可选。

  • ID:一个指定 ID 的字符串值。 可选。

子元素

无。

父元素

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>