Como: Criar modelos multiprojetos

Multi-project templates act as containers for two or more projects. Quando um projeto com base em um modelo de multiprojeto é criado a partir de Novo projeto caixa de diálogo, todos os projetos no modelo é adicionada à solução.

Um modelo de multiprojeto deve incluir os itens a seguir compactados em um arquivo. zip:

  • A root .vstemplate file for the entire multi-project template. Este arquivo. vstemplate raiz contém os metadados que o Novo projeto caixa de diálogo exibe e especifica onde localizar os arquivos. vstemplate dos projetos neste modelo. This file must be located at the root of the .zip file.

  • Uma ou mais pastas que contêm os arquivos que são necessários para um modelo de projeto completo. Isso inclui todos os arquivos de código para o projeto e um arquivo. vstemplate para o projeto.

Por exemplo, um arquivo. zip de modelo de multiprojeto com dois projetos poderia ter os seguintes arquivos e diretórios:

MultiProjectTemplate.vstemplate

\Project1\Project1.vstemplate

\Project1\Project1.vbproj

\Project1\Class.vb

\Project2\Project2.vstemplate

\Project2\Project2.vbproj

\Project2\Class.vb

Arquivo. vstemplate raiz para um modelo de multiprojeto difere de um modelo de projeto único das seguintes maneiras:

  • The Type attribute of the VSTemplate element contains the value ProjectGroup. For example:

    <VSTemplate Version="2.0.0" Type="ProjectGroup"
        xmlns="https://schemas.microsoft.com/developer/vstemplate/2005">
    
  • O TemplateContent elemento contém um ProjectCollection elemento que possui um ou mais ProjectTemplateLink elementos que definem os caminhos para os arquivos. vstemplate dos projetos incluídos. For example:

    <TemplateContent>
        <ProjectCollection>
            <ProjectTemplateLink>
                Project1\Project1.vstemplate
            </ProjectTemplateLink>
            <ProjectTemplateLink>
                Project2\Project2.vstemplate
            </ProjectTemplateLink>
        </ProjectCollection>
    </TemplateContent>
    

Multi-project templates also behave differently than normal templates. Multi-project templates have the following unique characteristics:

  • Individual projects in a multi-project template cannot be assigned names by the New Project dialog box. Instead, use the ProjectName attribute on the ProjectTemplateLink element to specify the name for each project. For more information, see the first example in the following section.

  • Modelos de multiprojetos podem conter projetos escritos em linguagens diferentes, mas o próprio modelo inteiro só pode ser colocado em uma categoria, usando o ProjectType elemento.

To create a multi-project template

  1. Create the projects to include in the multi-project template.

  2. Crie arquivos. vstemplate para cada projeto. For more information, see Como: Criar modelos de projeto and Como: Criar manualmente modelos de projeto.

  3. Crie um arquivo. vstemplate de raiz que contém os metadados para o modelo de multiprojeto. For more information, see the first example in the following section.

  4. Selecione os arquivos e pastas a serem incluídos no seu modelo, clique com o botão direito na seleção, clique em Enviar parae em seguida, clique em pasta compactada (zipada). The files and folders are compressed into a .zip file.

  5. Coloque o arquivo de modelo. zip na Visual Studio diretório de modelo de projeto. Por padrão, esse diretório é Documentos\Visual Studio 2010\Templates\ProjectTemplates\.

Exemplo

Este exemplo mostra um arquivo. vstemplate de raiz de multiprojeto básico. In this example, the template contains two projects, My Windows Application and My Class Library. The ProjectName attribute on the ProjectTemplateLink element sets the name for Visual Studio to assign this project. If the ProjectName attribute does not exist, the name of the .vstemplate file is used as the project name.

<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>

This example uses the SolutionFolder element to divide the projects into two groups, Math Classes and Graphics Classes. The template contains four projects, two of which are placed in each solution folder.

<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>

Consulte também

Tarefas

Como: Criar modelos de projeto

Como: Criar manualmente modelos de projeto

Referência

Referência de esquema de modelo do Studio Visual

Referência de esquema de modelo do Studio Visual

Elemento SolutionFolder (modelos de Visual Studio)

Elemento ProjectTemplateLink (modelos de Visual Studio)

Outros recursos

Starter Kits

Modelos Visual Studio