Visual Studio テンプレートを作成する。 - プロジェクト テンプレート編 - その1。
Visual Studio テンプレートを作成する。 - プロジェクト テンプレート編 - その2。
Visual Studio テンプレートを作成する。 - プロジェクト テンプレート編 - その3。
前回の最後にパラメータを独自に実装したいっす!なんて思ったのですが、これもちゃんとありましたよ、MSDNに。
MSDN:方法 : カスタム パラメータをテンプレートに渡す(http://msdn2.microsoft.com/ja-jp/library/ms247063(VS.80).aspx)
今回は、その1で作成したテンプレートの元になるプロジェクトでこれを試してみます。現在のProgram クラスはこう↓なっています。
Imports System
Imports System.Windows.Forms
Public Class Program
<STAThread()> _
Public Shared Sub Main()
Application.EnableVisualStyles()
Using frm As New Form1
Application.Run(frm)
End Using
End Sub
End Class
これを以下のように変更します。
Imports System
Imports System.Windows.Forms
Public Class Program
<STAThread()> _
Public Shared Sub Main()
Application.EnableVisualStyles()
Using frm As New Form1
Application.Run(frm)
End Using
End Sub
End Class
この $ProgramMainSummary$ という独自のパラメータを、なんとか以前の「アプリケーションのメイン エントリ ポイントです。」に置換してもらえるようにします。さっそく
Program クラスが変更できたら、以前の方法で [テンプレートのエクスポート] を使用してテンプレートを作成します。
しかし、このままではこのパラメータを置換することを Visual Studio は知りません。困りましたね。そこで置換してもらうために、このテンプレートをカスタマイズします。前回の内容である
MyTemplate.vstemplate、今回もこれを開きます。開いてみると内容は前回と同じですね。
これに、先ほどのMSDNのリンク先にあるように TemplateContent 要素の中に新しく CustomParameters 要素を追加し、さらにその中に CustomParameter 要素を追加します。すると、TemplateContent 要素の中身は以下のようになります。
<TemplateContent>
<Project TargetFileName="TorikoWindowsApplication.vbproj" File="TorikoWindowsApplication.vbproj" ReplaceParameters="true">
<ProjectItem ReplaceParameters="true" TargetFileName="Form1.vb">Form1.vb</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Form1.Designer.vb">Form1.Designer.vb</ProjectItem>
<Folder Name="My Project" TargetFolderName="My Project">
<ProjectItem ReplaceParameters="true" TargetFileName="Application.myapp">Application.myapp</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Application.Designer.vb">Application.Designer.vb</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="AssemblyInfo.vb">AssemblyInfo.vb</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Resources.resx">Resources.resx</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Resources.Designer.vb">Resources.Designer.vb</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Settings.settings">Settings.settings</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Settings.Designer.vb">Settings.Designer.vb</ProjectItem>
</Folder>
<ProjectItem ReplaceParameters="true" TargetFileName="Program.vb">Program.vb</ProjectItem>
</Project>
<CustomParameters>
<CustomParameter Name="$ProgramMainSummary$" Value="アプリケーションのメイン エントリ ポイントです。"/>
</CustomParameters>
</TemplateContent>
だいたい意味は分かると思いますが、CustomParameter 要素の Name 属性が置換するパラメータ名、Value 属性が置換する値です。(そのまんま・・・orz)
これを以前のテンプレートに置き換えます。もう一度 .zip ファイルに戻し(含まれるファイルを選択し、右クリックし、[送信] を選択し、[圧縮 (zip 形式) フォルダ]でできます。)、出来上がった .zip ファイルの名前を「TorikoWindowsApplication」(環境に合わせて置き換えてください。)に変更します。それを[Visual
Studio ユーザーテンプレートの場所]に指定したフォルダ(私のところでは C:\Documents and Settings\[ユーザ名]\My Documents\Visual Studio 2005\Templates\ProjectTemplates)に配置します。
これで、テンプレートが新しいものに更新されました♪試しに新しいプロジェクトを作成してみてください。ちゃんと置換された Program.vb が出来上がっていますね。