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


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

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

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