Compartilhar via


Como: Criar Multi-projeto Templates

Modelos de multiprojetos atuam como contêineres para dois ou mais projetos.Quando um projeto baseado em um modelo de multiprojeto é criado a partir da caixa de diálogo New Project (Novo Projeto), cada projeto incluído no modelo é adicionado à solução.

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

  • Um arquivo .vstemplate raiz para o modelo do multiprojeto inteiro.Esse arquivo .vstemplate raiz contém os metadados que a caixa de diálogo New Project exibe e especifica onde localizar os arquivos .vstemplate para os projetos nesse modelo.Esse arquivo deve estar localizado na raiz do arquivo .zip.

  • Uma ou mais pastas que contém os arquivos 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 multiprojeto com dois projetos poderia ter os seguintes arquivos e pastas:

MultiProjectTemplate.vstemplate

\Project1\Project1.vstemplate

\Project1\Project1.vbproj

\Project1\Class.vb

\Project2\Project2.vstemplate

\Project2\Project2.vbproj

\Project2\Class.vb

O arquivo .vstemplate raiz para um modelo de multiprojeto difere de um modelo de projeto único da seguinte maneira:

  • O atributo Type do elemento VSTemplate contém o valor ProjectGroup.Por exemplo:

    <VSTemplate Version="2.0.0" Type="ProjectGroup"
        xmlns="https://schemas.microsoft.com/developer/vstemplate/2005">
    
  • O elemento TemplateContent contém um elemento ProjectCollectioncom um ou mais elementos ProjectTemplateLink que definem caminhos aos arquivos .vstemplate dos projetos inclusos.Por exemplo:

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

Os modelos de multiprojetos também se comportam de maneira diferente que os modelos normais.Modelos de multiprojetos têm as seguintes características exclusivas:

  • Projetos individuais em um modelo de multiprojeto não podem ter nomes atribuídos pela caixa de diálogo New Project.Em vez disso, use o atributo ProjectName no elemento ProjectTemplateLink para especificar o nome para cada projeto.Para mais informações, consulte o primeiro exemplo na seção a seguir.

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

Para criar um modelo de multiprojeto

  1. Crie os projetos a serem incluídos no modelo de multiprojeto.

  2. Crie os arquivos .vstemplate para cada um dos projetos.Para obter mais informações, consulte Como: Criar modelos de projeto e Como: Criar manualmente modelos de projeto.

  3. Crie um arquivo .vstemplate raiz que conterá os metadados para o modelo de multiprojeto.Para mais informações, consulte o primeiro exemplo na seção a seguir.

  4. Selecione os arquivos e as pastas a serem incluídos em seu modelo, clique com o botão direito do mouse, selecione Enviar Para e clique em Pasta Compactada (zipada).Os arquivos e as pastas são compactados em um arquivo .zip.

  5. Coloque o arquivo de modelo .zip no diretório de modelos de projetos do Visual Studio.Por padrão, esta pasta é My Documents\Visual Studio 2008\Templates\ProjectTemplates.

Exemplo

Este exemplo mostra um arquivo .vstemplate raiz de multiprojeto simples.Nesse exemplo, o modelo contém dois projetos, My Windows Application e My Class Library.O atributo ProjectName no elemento ProjectTemplateLink define o nome Visual Studio para atribuir este projeto.Se o atributo ProjectName não existir, o nome do arquivo .vstemplate é usado como o nome do projeto.

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

Este exemplo usa o elemento SolutionFolder para dividir os projetos em dois grupos, Math Classes e Graphics Classes.O modelo contém quatro projetos, dois dos quais são colocados na pasta de cada solução.

<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 (Visual Studio modelos)

Elemento ProjectTemplateLink (Visual Studio modelos)

Outros recursos

Starter Kits

Modelos Visual Studio