Template parameters

テンプレートがインスタンス化されるとき、テンプレートの値を置換できます。 この機能を設定するには、テンプレート パラメーターを使用します。 テンプレート パラメーターは、テンプレートのクラス名や名前空間など、値を置換するために使用できます。 ユーザーが新しい項目やプロジェクトを追加したときにバックグラウンドで実行されるテンプレート ウィザードによってこれらのパラメーターが置換されます。

テンプレート パラメーターを宣言して有効にする

テンプレート パラメーターは、$parameter$ という形式で宣言されます。 次に例を示します。

  • $rootnamespace$

  • $guid1$

  • $guid5$

テンプレートでパラメーター置換を有効にする

  1. テンプレートの .vstemplate ファイル内で、パラメーター置換を有効にする項目に対応する ProjectItem 要素を見つけます。

  2. ReplaceParameters 要素の ProjectItem 属性を true に設定します。

  3. プロジェクト項目のコード ファイルで、必要に応じてパラメーターを含めます。 たとえば、次のパラメーターは、ファイル内で名前空間に対してルート名前空間が使用されることを指定します。

    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>

関連項目