Visual Studio には、統合開発環境 (IDE: Integrated Development Environment) で開かれたプロジェクトからテンプレートを生成するウィザードが用意されています。 ただし、IDE の外部でテンプレートを作成する場合は、ここで説明する手順を使用して、アプリケーションのソース ファイルを Visual Studio プロジェクト テンプレートに手動でアセンブルできます。
カスタム プロジェクト テンプレートを作成するプロセスには、プロジェクトを設計および開発する作業と、プロジェクト テンプレートに関するメタデータを提供する作業が含まれます。
カスタム プロジェクト テンプレートには、以下の項目が必要です。
メタデータ (.vstemplate) ファイル。Visual Studio ではこれを使用して、IDE でのプロジェクトの表示方法を定義し、IDE におけるプロジェクトの作成方法をカスタマイズします (適切なプロパティを指定している場合)。
プロジェクト ファイル。
Windows フォーム、Web フォーム、クラス ファイル、リソース ファイルなどのコード ファイル。
すべての項目が 1 つの .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>