Template parameters
テンプレートがインスタンス化されるとき、テンプレートの値を置換できます。 この機能を設定するには、テンプレート パラメーターを使用します。 テンプレート パラメーターは、テンプレートのクラス名や名前空間など、値を置換するために使用できます。 ユーザーが新しい項目やプロジェクトを追加したときにバックグラウンドで実行されるテンプレート ウィザードによってこれらのパラメーターが置換されます。
テンプレート パラメーターを宣言して有効にする
テンプレート パラメーターは、$parameter$ という形式で宣言されます。 次に例を示します。
$rootnamespace$
$guid1$
$guid5$
テンプレートでパラメーター置換を有効にする
テンプレートの .vstemplate ファイル内で、パラメーター置換を有効にする項目に対応する
ProjectItem
要素を見つけます。ReplaceParameters
要素のProjectItem
属性をtrue
に設定します。プロジェクト項目のコード ファイルで、必要に応じてパラメーターを含めます。 たとえば、次のパラメーターは、ファイル内で名前空間に対してルート名前空間が使用されることを指定します。
namespace $rootnamespace$
予約済みのテンプレート パラメーター
テンプレートで使用できる予約済みテンプレート パラメーターを次の表に示します。
パラメーター | 説明 |
---|---|
clrversion | 共通言語ランタイム (CLR: Common Language Runtime) の現在のバージョン。 |
ext_* | 親テンプレートの変数を参照するには、パラメーターに ext_ プレフィックスを追加します。 たとえば、「 ext_safeprojectname 」のように入力します。 |
guid[1-10] | プロジェクト ファイルでプロジェクト GUID を置き換えるために使用される GUID。 最大 10 個の一意 GUID を指定できます (例: guid1 )。 |
itemname | パラメーターが使用されているファイルの名前。 |
machinename | 現在のコンピューター名 (たとえば、Computer01)。 |
projectname | プロジェクトの作成時にユーザーが指定した名前。 このパラメーターは、プロジェクト テンプレートにのみ適用されます。 |
registeredorganization | HKLM\Software\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization のレジストリ キー値。 |
rootnamespace | 現在のプロジェクトのルート名前空間の後に現在の項目のサブフォルダーが続き、スラッシュはピリオドで置き換えられます。 |
defaultnamespace | 現在のプロジェクトのルート名前空間。 |
safeitemname | itemname と同じですが、安全でない文字とスペースはすべてアンダースコア文字に置き換えられます。 |
safeitemrootname | safeitemname と同じ。 |
safeprojectname | プロジェクトの作成時にユーザーによって指定された名前ですが、すべての安全でない文字およびスペースがすべて削除されています。 このパラメーターは、プロジェクト テンプレートにのみ適用されます。 |
targetframeworkversion | ターゲット .NET Framework の現在のバージョン。 |
time | Windows のユーザー設定に基づいた形式の現在の時刻。 時刻形式の 1 つの例として、DD/MM/YYYY 00:00:00 があります。 |
specifiedsolutionname | ソリューションの名前。 "ソリューションとプロジェクトを同じディレクトリに配置する" がチェックされていない場合は、specifiedsolutionname ソリューション名が付けられます。 [ソリューションのディレクトリを作成] がオフになっている場合、specifiedsolutionname は空白です。 |
userdomain | 現在のユーザー ドメイン。 |
username | 現在のユーザー名。 |
webnamespace | 現在の Web サイトの名前。 このパラメーターは、Web フォーム テンプレートで一意のクラス名を保証するために使用されます。 この Web サイトが Web サーバーのルート ディレクトリにある場合、このテンプレート パラメーターは Web サーバーのルート ディレクトリとして解決されます。 |
year | YYYY の形式で表した現在の年。 |
注意
テンプレート パラメーターでは、大文字と小文字が区別されます。
カスタム テンプレート パラメーター
パラメーター置換時に使われる既定の予約済みテンプレート パラメーターの他に、独自のテンプレート パラメーターと値を指定できます。 詳細については、「CustomParameters 要素 (Visual Studio テンプレート)」を参照してください。
例: ファイル名に対するプロジェクト名の使用
TargetFileName
属性でパラメーターを使うことにより、プロジェクト項目に対して変数ファイル名を指定できます。
次の例では、実行可能ファイルの名前でプロジェクト名 ($projectname$
で指定されています) を使うように指定します。
<TemplateContent>
<ProjectItem
ReplaceParameters="true"
TargetFileName="$projectname$.exe">
File1.exe
</ProjectItem>
...
</TemplateContent>
例: 名前空間名に対する安全なプロジェクト名の使用
C# クラス ファイルの名前空間に対して安全なプロジェクト名を使うには、次の構文を使います。
namespace $safeprojectname$
{
public class Class1
{
public Class1()
{ }
}
}
プロジェクト テンプレートの .vstemplate ファイルで、ファイルを参照するときに ReplaceParameters="true"
属性を指定します。
<TemplateContent>
<ProjectItem ReplaceParameters="true">
Class1.cs
</ProjectItem>
...
</TemplateContent>