更新: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 模板)