Поделиться через


Практическое руководство. Создание многопроектных шаблонов

Обновлен: Ноябрь 2007

Многопроектные шаблоны используются в качестве контейнера для двух или нескольких проектов. При создании проекта на основе многопроектного шаблона, из диалогового окна Новый проект каждый проект, включенный в шаблон, добавляется в решение.

Многопроектный шаблон должен включать следующие элементы, сжатые в один 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 файл для шаблона, включающего несколько проектов, отличается от шаблона для одного проекта следующими параметрами:

  • Атрибут Type элемента VSTemplate содержит значение ProjectGroup. Например:

    <VSTemplate Version="2.0.0" Type="ProjectGroup"
        xmlns="https://schemas.microsoft.com/developer/vstemplate/2005">
    
  • Элемент TemplateContent содержит элемент ProjectCollection с одним или несколькими элементами ProjectTemplateLink, которые определяют пути к файлам с расширением VSTEMPLATE включенных проектов. Например:

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

Многопроектные шаблоны работают другим образом, чем обычные шаблоны. Многопроектные шаблоны имеют следующие уникальные характеристики:

  • Отдельным проектам в многопроектном шаблоне не могут быть назначены имена в диалоговом окне Новый проект. Вместо этого используйте атрибут ProjectName элемента ProjectTemplateLink для указания имени для каждого проекта. Для получения дополнительных сведений см. первый пример в следующем разделе.

  • Многопроектные шаблоны могут содержать проекты, написанные на разных языках, но весь шаблон может быть помещен только в одну категорию с элементом ProjectType.

Чтобы создать многопроектный шаблон

  1. Создайте проекты для включения в многопроектный шаблон.

  2. Создайте VSTEMPLATE-файлы для каждого из проектов. Дополнительные сведения см. в разделах Практическое руководство. Создание шаблонов проектов и Практическое руководство. Создания шаблонов проектов вручную.

  3. Создайте корневой VSTEMPLATE-файл, который будет содержать метаданные для многопроектного шаблона. Для получения дополнительных сведений см. первый пример в следующем разделе.

  4. Выберите файлы и папки для включения в шаблон, щелкните правой кнопкой мыши, укажите Отправить и щелкните пункт Сжатая ZIP-папка. Файлы и папки, сожмутся в ZIP-файл.

  5. Поместите этот ZIP-файл шаблона в каталог шаблонов проектов Visual Studio. По умолчанию это каталог My Documents\Visual Studio 2008\Templates\ProjectTemplates.

Пример

В этом примере показан простой, включающий несколько проектов корневой VSTEMPLATE-файл. В этом примере шаблон содержит два проекта My Windows Application и My Class Library. Атрибут ProjectName элемента ProjectTemplateLink задает имя, которое 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>

См. также

Задачи

Практическое руководство. Создание шаблонов проектов

Практическое руководство. Создания шаблонов проектов вручную

Ссылки

Справочник по схеме шаблонов Visual Studio

Справочник по схеме шаблонов Visual Studio

Элемент "SolutionFolder" (шаблоны проектов Visual Studio)

Элемент "ProjectTemplateLink" (шаблоны Visual Studio)

Другие ресурсы

Начальные наборы

Шаблоны Visual Studio