テンプレート名
更新 : 2007 年 11 月
すべてのテンプレートはパラメータ置換をサポートしており、テンプレートをインスタンス化するときに、クラス名や名前空間などの重要なパラメータを置換できます。[新しいプロジェクト] ダイアログ ボックスまたは [新しい項目の追加] ダイアログ ボックスで [OK] をクリックすると、これらのパラメータが、バックグラウンドで実行されているテンプレート ウィザードによって置き換えられます。
テンプレート パラメータの宣言と有効化
テンプレート パラメータは $parameter$ という形式で宣言されます。たとえば、次のようにします。
$safeprojectname$
$guid1$
$guid5$
テンプレートでパラメータ置換を有効にするには
テンプレートの .vstemplate ファイルで、パラメータ置換を有効にする項目に対応する ProjectItem 要素を見つけます。
ProjectItem 要素の ReplaceParameters 属性を true に設定します。
プロジェクト項目のコード ファイルで、必要に応じてパラメータを含めます。たとえば、次のパラメータは、ファイル内で名前空間に対して安全なプロジェクト名が使用されることを指定します。
namespace $safeprojectname$
予約済みテンプレート パラメータ
テンプレートで使用できる予約済みテンプレート パラメータを次の表に示します。
メモ : |
---|
テンプレート パラメータでは、大文字と小文字が区別されます。 |
パラメータ |
説明 |
---|---|
clrversion |
共通言語ランタイム (CLR: Common Language Runtime) の現在のバージョン。 |
GUID [1-10] |
プロジェクト ファイルでプロジェクト GUID を置き換えるために使用される GUID。最大 10 の GUID を指定できます (たとえば、guid1)。 |
itemname |
[新しい項目の追加] ダイアログ ボックスでユーザーが指定した名前。 |
machinename |
現在のコンピュータ名 (たとえば、Computer01)。 |
projectname |
[新しいプロジェクト] ダイアログ ボックスでユーザーが指定した名前。 |
registeredorganization |
HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization のレジストリ キー値。 |
rootnamespace |
現在のプロジェクトのルート名前空間。このパラメータは、プロジェクトに追加される項目の名前空間を置換するために使用されます。 |
safeitemname |
[新しい項目の追加] ダイアログ ボックスでユーザーが指定した名前から、安全でないすべての文字とスペースを削除したもの。 |
safeprojectname |
[新しいプロジェクト] ダイアログ ボックスでユーザーが指定した名前から、安全でないすべての文字とスペースを削除したもの。 |
time |
DD/MM/YYYY 00:00:00 の形式で表した現在の時間。 |
userdomain |
現在のユーザー ドメイン。 |
username |
現在のユーザー名。 |
webnamespace |
現在の Web サイトの名前。このパラメータは、Web フォーム テンプレートで一意のクラス名を保証するために使用されます。この Web サイトが Web サーバーのルート ディレクトリにある場合、このテンプレート パラメータは Web サーバーのルート ディレクトリとして解決されます。 |
year |
YYYY の形式で表した現在の年。 |
カスタム テンプレート パラメータ
パラメータ置換時に自動的に使用される予約済みテンプレート パラメータの他に、独自のテンプレート パラメータと値を指定できます。詳細については、「方法 : カスタム パラメータをテンプレートに渡す」を参照してください。
例 : ファイル名の置換
TargetFileName 属性を指定してパラメータを使用することにより、プロジェクト項目に対して変数ファイル名を指定できます。たとえば、.exe ファイルが $projectname$ によって指定されるプロジェクト名をファイル名として使用するように指定できます。
<TemplateContent>
<ProjectItem
ReplaceParameters="true"
TargetFileName="$projectname$.exe">
File1.exe
</ProjectItem>
...
</TemplateContent>
例 : 名前空間名に対するプロジェクト名の使用
Visual C# クラス ファイル Class1.cs で名前空間に対してプロジェクト名を使用するには、次の構文を使用します。
#region Using directives
using System;
using System.Collections.Generic;
using System.Text;
#endregion
namespace $safeprojectname$
{
public class Class1
{
public Class1()
{
}
}
}
プロジェクト テンプレートの .vstemplate ファイルで、ファイル Class1.cs を参照するときに次の XML を含めます。
<TemplateContent>
<ProjectItem ReplaceParameters="true">
Class1.cs
</ProjectItem>
...
</TemplateContent>