如何:创建多项目模板
更新:2007 年 11 月
多项目模板可作为两个或多个项目的容器。从“新建项目”对话框中创建基于多项目模板的项目时,模板中包含的每个项目都会添加到解决方案中。
多项目模板被压缩为一个 .zip 文件,其中必须包括下列项:
整个多项目模板的根 .vstemplate 文件。此根 .vstemplate 文件包含“新建项目”对话框中显示的元数据,并指定在何处查找此模板中的项目的 .vstemplate 文件。此文件必须位于 .zip 文件的根目录处。
包含完整项目模板所需文件的一个或多个文件夹。这包括项目的所有代码文件以及项目的 .vstemplate 文件。
例如,一个包含两个项目的多项目模板 .zip 文件可能具有下列文件和目录:
MultiProjectTemplate.vstemplate
\Project1\Project1.vstemplate
\Project1\Project1.vbproj
\Project1\Class.vb
\Project2\Project2.vstemplate
\Project2\Project2.vbproj
\Project2\Class.vb
多项目模板的根 .vstemplate 文件在以下几个方面不同于单一的项目模板:
VSTemplate 元素的 Type 属性包含值 ProjectGroup。例如:
<VSTemplate Version="2.0.0" Type="ProjectGroup" xmlns="https://schemas.microsoft.com/developer/vstemplate/2005">
TemplateContent 元素包含一个 ProjectCollection 元素,该元素具有一个或多个定义所包含项目的 .vstemplate 文件路径的 ProjectTemplateLink 元素。例如:
<TemplateContent> <ProjectCollection> <ProjectTemplateLink> Project1\Project1.vstemplate </ProjectTemplateLink> <ProjectTemplateLink> Project2\Project2.vstemplate </ProjectTemplateLink> </ProjectCollection> </TemplateContent>
多项目模板的行为也不同于常规模板。多项目模板具有下列唯一特征:
多项目模板中各个项目的名称不能由“新建项目”对话框来分配。而应使用 ProjectTemplateLink 元素的 ProjectName 属性来指定每个项目的名称。有关更多信息,请参见下一节中的第一个示例。
多项目模板可以包含以不同语言编写的项目,但整个模板本身却只能放在具有 ProjectType 元素的一个类别中。
创建多项目模板
创建要包含在多项目模板中的项目。
为每个项目创建 .vstemplate 文件。有关更多信息,请参见 如何:创建项目模板 和 如何:手动创建项目模板。
创建将包含多项目模板的元数据的根 .vstemplate 文件。有关更多信息,请参见下一节中的第一个示例。
选择要包括在模板中的文件和文件夹,右击鼠标,选择“发送到”,然后单击“压缩(zipped)文件夹”。文件和文件夹将被压缩为一个 .zip 文件。
将 .zip 模板文件放在 Visual Studio 项目模板目录中。默认情况下,此目录为 My Documents\Visual Studio 2008\Templates\ProjectTemplates。
示例
此示例演示一个简单的多项目根 .vstemplate 文件。在此示例中,模板包含两个项目:My Windows Application 和 My Class Library。ProjectTemplateLink 元素的 ProjectName 属性可为 Visual Studio 设置要分配给此项目的名称。如果不存在 ProjectName 属性,则会使用 .vstemplate 文件的名称作为项目名称。
<VSTemplate Version="2.0.0" Type="ProjectGroup"
xmlns="https://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name>Multi-Project Template Sample</Name>
<Description>An example of a multi-project template</Description>
<Icon>Icon.ico</Icon>
<ProjectType>VisualBasic</ProjectType>
</TemplateData>
<TemplateContent>
<ProjectCollection>
<ProjectTemplateLink ProjectName="My Windows Application">
WindowsApp\MyTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="My Class Library">
ClassLib\MyTemplate.vstemplate
</ProjectTemplateLink>
</ProjectCollection>
</TemplateContent>
</VSTemplate>
此示例使用 SolutionFolder 元素将项目分为两组:Math Classes 和 Graphics Classes。模板包含四个项目,每个解决方案文件夹中放两个。
<VSTemplate Version="2.0.0" Type="ProjectGroup"
xmlns="https://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<Name>Multi-Project Template Sample</Name>
<Description>An example of a multi-project template</Description>
<Icon>Icon.ico</Icon>
<ProjectType>VisualBasic</ProjectType>
</TemplateData>
<TemplateContent>
<ProjectCollection>
<SolutionFolder Name="Math Classes">
<ProjectTemplateLink ProjectName="MathClassLib1">
MathClassLib1\MyTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="MathClassLib2">
MathClassLib2\MyTemplate.vstemplate
</ProjectTemplateLink>
</SolutionFolder>
<SolutionFolder Name="Graphics Classes">
<ProjectTemplateLink ProjectName="GraphicsClassLib1">
GraphicsClassLib1\MyTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="GraphicsClassLib2">
GraphicsClassLib2\MyTemplate.vstemplate
</ProjectTemplateLink>
</SolutionFolder>
</ProjectCollection>
</TemplateContent>
</VSTemplate>
请参见
任务
参考
SolutionFolder 元素(Visual Studio 模板)
ProjectTemplateLink 元素(Visual Studio 模板)