방법: 수동으로 프로젝트 템플릿 만들기
Visual Studio는 IDE(통합 개발 환경)에 열려 있는 프로젝트에서 템플릿을 생성하도록 도와 주는 마법사를 제공합니다. 그러나 IDE 외부에서 템플릿을 만들려는 경우 다음 단계를 사용하여 응용 프로그램의 소스 파일을 Visual Studio 프로젝트 템플릿에 어셈블할 수 있습니다.
사용자 지정 프로젝트 템플릿을 만드는 프로세스에는 프로젝트를 디자인하고 개발하는 과정뿐 아니라 프로젝트 템플릿에 대한 메타데이터를 제공하는 것도 포함됩니다.
사용자 지정 프로젝트 템플릿에는 다음 항목이 있어야 합니다.
IDE에서 프로젝트를 표시하는 방법을 정의하고 적절한 속성을 지정한 경우 IDE에서 프로젝트가 만들어지는 방법을 사용자 지정하기 위해 Visual Studio에서 사용하는 메타데이터 파일(.vstemplate)입니다.
프로젝트 파일입니다.
Windows Forms, Web Forms, 클래스 파일, 리소스 파일 등의 코드 파일입니다.
모든 항목은 하나의 .zip 파일로 압축됩니다. .zip 파일은 Visual Studio에서 사용자 지정 프로젝트 템플릿용으로 인식하는 위치에 있어야 합니다. 사용자 지정 프로젝트 템플릿은 새 프로젝트 대화 상자의 내 템플릿 섹션에 있는 모든 프로그래밍 언어 폴더에 나열됩니다. 자세한 내용은 방법: 프로젝트 템플릿과 항목 템플릿 찾기 및 구성을 참조하십시오.
템플릿을 수동으로 만들려면
프로젝트를 만듭니다.
매개 변수를 대체해야 하는 위치를 나타내도록 코드 파일을 편집합니다. 매개 변수 대체에 대한 자세한 내용은 방법: 템플릿 매개 변수 대체을 참조하십시오.
XML 파일을 만들고 이 파일을 프로젝트와 같은 디렉터리에 MyTemplate.vstemplate 파일로 저장합니다. 그러나 이 파일을 Visual Studio의 프로젝트에 추가하지는 마십시오.
프로젝트 템플릿 메타데이터를 제공하도록 MyTemplate.vstemplate 파일을 작성합니다. 자세한 내용은 다음 단원의 예제를 참조하십시오.
템플릿의 파일(.vstemplate 파일 포함)을 선택하고 마우스 오른쪽 단추를 클릭한 다음 보내기를 클릭하고 압축(ZIP) 폴더를 클릭합니다. 전에 추출한 파일은 .zip 파일로 압축됩니다.
.zip 템플릿 파일을 Visual Studio 프로젝트 템플릿 디렉터리에 넣습니다. 이 디렉터리는 Visual Studio 설치 디렉터리 아래에 있으며 이름이 Templates\ProjectTemplates\입니다.
예제
다음 예제에서는 기본 .vstemplate 메타데이터 파일을 보여 줍니다. TemplateData 요소는 새 프로젝트 대화 상자에 표시되는 프로젝트 형식, 이름, 설명 및 아이콘을 지정합니다. TemplateContent 요소는 프로젝트 파일의 이름과 프로젝트에 있는 파일을 지정합니다. 이 예제에서 프로젝트 파일은 MyTemplate.csproj로 명명되고 일반적으로 Visual C# 프로젝트에 들어 있는 파일을 포함합니다.
<VSTemplate Version="3.0.0" xmlns="https://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
<TemplateData>
<Name>My template</Name>
<Description>Basic C# application</Description>
<ProjectType>CSharp</ProjectType>
<ProjectSubType>
</ProjectSubType>
<SortOrder>1000</SortOrder>
<CreateNewFolder>true</CreateNewFolder>
<DefaultName>Simple</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
<LocationField>Enabled</LocationField>
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
<Icon>__TemplateIcon.ico</Icon>
</TemplateData>
<TemplateContent>
<Project TargetFileName="MyTemplate.csproj" File="Killer.csproj" ReplaceParameters="true">
<ProjectItem ReplaceParameters="true" TargetFileName="App.config">App.config</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Form1.cs">Form1.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Form1.Designer.cs">Form1.Designer.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Program.cs">Program.cs</ProjectItem>
<Folder Name="Properties" TargetFolderName="Properties">
<ProjectItem ReplaceParameters="true" TargetFileName="AssemblyInfo.cs">AssemblyInfo.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Resources.resx">Resources.resx</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Resources.Designer.cs">Resources.Designer.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Settings.settings">Settings.settings</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Settings.Designer.cs">Settings.Designer.cs</ProjectItem>
</Folder>
</Project>
</TemplateContent>
</VSTemplate>