ソリューションテンプレートの作成方法
PrismWPFSampleでPrismを使用したアプリケーションの基本形を作ってきましたが、自分自身のいつも使うパターンをテンプレートとして用意しておくことで、新しいアプリケーションを簡単に作り始めることができます。複数のプロジェクトを持つPrismアプリケーションのテンプレートの作り方をまとめておきます。
ソリューションの準備
元になるアプリケーションをコピーしておき、基本となる部分以外を削除します。
今まで作ってきた上記のような構成から、基本部分のみを残すと次のようなものになります。
この構成をテンプレートとして保存する事を考えます。
プロジェクトのテンプレートの作成
まずやらなくてはいけないのは、ソリューションに含まれるプロジェクトを一つづつテンプレート化する事です。 プロジェクトのテンプレートのエクスポートを選びます。
プロジェクトのテンプレートを選択して、プロジェクトを一つ選びます。
テンプレートのオプションでは、このままテンプレートとするのではないので、テンプレートを自動的にインポートのチェックを外しておきます。
この作業をこの例では4回繰り返して、すべてのプロジェクトのテンプレートを作成します。
ソリューションのテンプレートの作成
ソリューションテンプレート用のフォルダーを作成し、プロジェクトごとに作成したテンプレートのZIPファイルを解凍しておきます。
そこにソリューション用の .vstemplate ファイル拡張子を持つ XML ファイルを作成します。 内容は、次のように各プロジェクトの vstemplate ファイルの相対パスを記述します。 メインプロジェクトの名前を、ソリューションの新規作成時の名前にするために、ProjectTemplateLink 要素の ProjectName 属性で指定します。
<VSTemplate Version="3.0.0" Type="ProjectGroup" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005"> <TemplateData> <Name>PrismWpfApp</Name> <Description>Prism WPF Application</Description> <Icon>__TemplateIcon.ico</Icon> <ProjectType>CSharp</ProjectType> </TemplateData> <TemplateContent> <ProjectCollection> <ProjectTemplateLink ProjectName="$safeprojectname$" CopyParameters="true"> PrismWpfApp\MyTemplate.vstemplate </ProjectTemplateLink> <ProjectTemplateLink ProjectName="CommonModels"> CommonModels\MyTemplate.vstemplate </ProjectTemplateLink> <ProjectTemplateLink ProjectName="ModuleA"> ModuleA\MyTemplate.vstemplate </ProjectTemplateLink> <ProjectTemplateLink ProjectName="TraceListeners"> TraceListeners\MyTemplate.vstemplate </ProjectTemplateLink> </ProjectCollection> </TemplateContent> </VSTemplate>
テンプレートの配置
ソリューション用のフォルダーごとZip圧縮して、テンプレートのディレクトリに .zip ファイルをコピーします。 既定では、このディレクトリは %USERPROFILE%\Documents\Visual Studio <バージョン>\Templates\ProjectTemplates です。C#用のテンプレートなので、更に下位のVisual C#フォルダーに置いても良いでしょう。
作成したソリューションの場所
今回のソースコードと作成したテンプレートは次の場所に置いてあります。