Visual Studioにプロジェクトテンプレートや項目テンプレートという機能があるのを最近知りました。
使ってみた感想は、こいつは結構いいものだと思いました。
ほかの環境に持っていく方法も、zipをコピーするだけとお手軽なので、プロジェクトでのコードの雛形とかにするにはいいかもしれない。
使い方は簡単。
雛形として使いたいクラスを含むプロジェクトを開きます。ここでは、Class1.csを項目テンプレートとして使います。
Class1.csの中身は以下のようになっています。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
public class Class1
{
public void Execute()
{
// ここに、ロジックを書いてね
}
}
}
そして、[ファイル]→[テンプレートのエクスポート]を選びます。
項目テンプレートを選びます。
項目テンプレートに含めたいファイルを選択します。
この項目を追加したときに、プロジェクトに追加する参照を選択します。
出力先や、アイコン、テンプレート名とかを入力します。
完了を押すとzipファイルが作られます。
zipの中身は、vitemplateという拡張子のファイルとClass1.csとアイコンだけのシンプルな構成です。
Class1.csは、名前空間が$rootnamespace$に、クラス名が$safeitemname$になっています。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace $rootnamespace$
{
public class $safeitemname$
{
public void Execute()
{
// ここに、ロジックを書いてね
}
}
}
名前空間とクラス名だけ置換できれば実際困ることはあまりないと思います。
MyTemplate.vstemplateファイルは、以下のような形になっています。
<VSTemplate Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
<TemplateData>
<DefaultName>Sampleのテンプレート.cs</DefaultName>
<Name>Sampleのテンプレート</Name>
<Description>テスト用テンプレート</Description>
<ProjectType>CSharp</ProjectType>
<SortOrder>10</SortOrder>
<Icon>__TemplateIcon.ico</Icon>
</TemplateData>
<TemplateContent>
<References />
<ProjectItem SubType="Code" TargetFileName="$fileinputname$.cs" ReplaceParameters="true">Class1.cs</ProjectItem>
</TemplateContent>
</VSTemplate>
ProjectItemタグが個人的にポイントです。
SubTypeがプログラムならCodeで、そうじゃなければ空あたりを指定する。
TargetFleNameは、$fileinputname$の部分がファイル名に置換されます。拡張子は別にcsじゃなくてもOK!!
そして、ReplaceParametersをtrueにしてると、ファイル内の$変数名$の部分が、ちゃんとした値にセットされるという素敵な感じです。
タグにはさまれた所に、テンプレートの元になるファイル名が書かれています。
因みに、このProjectItemタグは複数書くと、1回の新規作成で複数のファイルを作ることが出来ます。
これを使えば.ttのテンプレートと、.csのプログラムの両方を1つの新規作成ウィザードで出したりとかも出来るようになります。
(昨日書いたエントリの内容とかを登録しておくとよいかも?
このzipを、ドキュメントフォルダの下のVisual Studio 2008\Templates\ItemTemplatesに置くとファイルの新規作成時にマイテンプレートで選択できるようになります。
もっと詳しい内容については、とりこびとさんのBlogにまとめてあります。
- Visual Studio テンプレートを作成する。 - プロジェクト テンプレート編 - その1。
- Visual Studio テンプレートを作成する。 - プロジェクト テンプレート編 - その2。
- Visual Studio テンプレートを作成する。 - プロジェクト テンプレート編 - その3。
- Visual Studio テンプレートを作成する。 - プロジェクト テンプレート編 - その4。
以上!