방법: 다중 프로젝트 템플릿 만들기How to: Create Multi-Project Templates

다중 프로젝트 템플릿은 두 개 이상의 프로젝트에 대한 컨테이너로 사용됩니다.Multi-project templates act as containers for two or more projects. 새 프로젝트 대화 상자에서 다중 프로젝트 템플릿에 기반하는 프로젝트를 만든 경우 템플릿의 모든 프로젝트를 솔루션에 추가합니다.When a project based on a multi-project template is created from the New Project dialog box, every project in the template is added to the solution.

다중 프로젝트 템플릿에는 .zip 파일로 압축된 다음 항목이 포함되어야 합니다.A multi-project template must include the following items, compressed into a .zip file:

  • 전체 다중 프로젝트 템플릿에 대한 루트 .vstemplate 파일입니다.A root .vstemplate file for the entire multi-project template. 이 루트 .vstemplate 파일은 새 프로젝트 대화 상자에서 표시하는 메타데이터를 포함하고, 이 템플릿에서 프로젝트의 .vstemplate 파일을 찾을 위치를 지정합니다.This root .vstemplate file contains the metadata that the New Project dialog box displays, and specifies where to find the .vstemplate files for the projects in this template. 이 파일은 .zip 파일의 루트에 있어야 합니다.This file must be located at the root of the .zip file.

  • 전체 프로젝트 템플릿에 필요한 파일이 포함된 하나 이상의 폴더입니다.One or more folders that contain the files that are required for a complete project template. 여기에는 프로젝트의 모든 코드 파일 및 프로젝트의 .vstemplate 파일이 포함됩니다.This includes all code files for the project, and also a .vstemplate file for the project.

    예를 들어 두 개의 프로젝트가 포함된 다중 프로젝트 템플릿 .zip 파일에는 다음 파일 및 디렉터리가 있을 수 있습니다.For example, a multi-project template .zip file that has two projects could have the following files and directories:

    MultiProjectTemplate.vstemplateMultiProjectTemplate.vstemplate

    \Project1\Project1.vstemplate\Project1\Project1.vstemplate

    \Project1\Project1.vbproj\Project1\Project1.vbproj

    \Project1\Class.vb\Project1\Class.vb

    \Project2\Project2.vstemplate\Project2\Project2.vstemplate

    \Project2\Project2.vbproj\Project2\Project2.vbproj

    \Project2\Class.vb\Project2\Class.vb

    다중 프로젝트 템플릿의 루트 .vstemplate 파일은 다음과 같은 점에서 단일 프로젝트 템플릿과 다릅니다.The root .vstemplate file for a multi-project template differs from a single-project template in the following ways:

  • VSTemplate 요소의 Type 특성에는 ProjectGroup 값이 포함됩니다.The Type attribute of the VSTemplate element contains the value ProjectGroup. 예:For example:

    <VSTemplate Version="2.0.0" Type="ProjectGroup"  
        xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">  
    
  • TemplateContent 요소에는 포함된 프로젝트의 .vstemplate 파일에 대한 경로를 정의하는 하나 이상의 ProjectTemplateLink 요소를 가진 ProjectCollection 요소가 포함됩니다.The TemplateContent element contains a ProjectCollection element that has one or more ProjectTemplateLink elements that define the paths to the .vstemplate files of the included projects. 예: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. 대신ProjectTemplateLink 요소의 ProjectName 특성을 사용하여 각 프로젝트의 이름을 지정합니다.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.

  • 다중 프로젝트 템플릿에는 다른 언어로 작성된 프로젝트가 포함될 수 있지만 전체 템플릿 자체는 ProjectType 요소를 사용하여 하나의 범주에만 배치될 수 있습니다.Multi-project templates can contain projects written in different languages, but the entire template itself can only be put in one category by using the ProjectType element.

다중 프로젝트 템플릿을 만들려면To create a multi-project template

  1. 다중 프로젝트 템플릿에 포함할 프로젝트를 만듭니다.Create the projects to include in the multi-project template.

  2. 모든 프로젝트에 .vstemplate 파일을 만듭니다.Create .vstemplate files for every project. 자세한 내용은 방법: 프로젝트 템플릿 만들기를 참조하세요.For more information, see How to: Create Project Templates.

  3. 다중 프로젝트 템플릿의 메타데이터를 포함하는 루트 .vstemplate 파일을 만듭니다.Create a root .vstemplate file that to contain the metadata for the multi-project template. 자세한 내용은 다음 섹션의 첫 번째 예제를 참조하세요.For more information, see the first example in the following section.

  4. 템플릿에 포함할 파일 및 폴더를 선택하고 선택 영역을 마우스 오른쪽 단추로 클릭한 다음 보내기를 클릭하고 압축(ZIP) 폴더를 클릭합니다.Select the files and folders to include in your template, right-click the selection, click Send To, and then click Compressed (zipped) Folder. 파일 및 폴더가 .zip 파일로 압축됩니다.The files and folders are compressed into a .zip file.

  5. .zip 템플릿 파일을 Visual StudioVisual Studio 프로젝트 템플릿 디렉터리에 배치합니다.Put the .zip template file in the Visual StudioVisual Studio project template directory. 기본적으로 이 디렉터리는 \My Documents\Visual Studio Version\Templates\ProjectTemplates\입니다.By default, this directory is \My Documents\Visual Studio Version\Templates\ProjectTemplates\.

예제Example

이 예제에서는 기본 다중 프로젝트 루트 .vstemplate 파일을 보여줍니다.This example shows a basic multi-project root .vstemplate file. 이 예제에서 템플릿에는 My Windows Application 프로젝트와 My Class Library 프로젝트가 들어 있습니다.In this example, the template contains two projects, My Windows Application and My Class Library. ProjectName 요소의 ProjectTemplateLink 특성은 Visual StudioVisual Studio가 이 프로젝트에 할당할 이름을 설정합니다.The ProjectName attribute on the ProjectTemplateLink element sets the name for Visual StudioVisual Studio to assign this project. ProjectName 특성이 없으면 .vstemplate 파일의 이름이 프로젝트 이름으로 사용됩니다.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="http://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>  

예제Example

이 예제에서는 SolutionFolder 요소를 사용하여 프로젝트를 Math ClassesGraphics Classes의 두 그룹으로 나눕니다.This example uses the SolutionFolder element to divide the projects into two groups, Math Classes and Graphics Classes. 이 템플릿에는 각 솔루션 폴더에 2개가 포함되는 4개의 프로젝트가 포함되어 있습니다.The template contains four projects, two of which are placed in each solution folder.

<VSTemplate Version="2.0.0" Type="ProjectGroup"  
    xmlns="http://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>  

참고 항목See Also

프로젝트 템플릿 및 항목 템플릿 만들기 Creating Project and Item Templates
Visual Studio 템플릿 스키마 참조 Visual Studio Template Schema Reference
방법: 프로젝트 템플릿 만들기 How to: Create Project Templates
Visual Studio 템플릿 스키마 참조 Visual Studio Template Schema Reference
SolutionFolder 요소(Visual Studio 템플릿) SolutionFolder Element (Visual Studio Templates)
ProjectTemplateLink 요소(Visual Studio 템플릿)ProjectTemplateLink Element (Visual Studio Templates)