テンプレート名

すべてのテンプレートはパラメーター置換をサポートしており、テンプレートをインスタンス化するときに、クラス名や名前空間などの重要なパラメーターを置換できます。 [新しいプロジェクト] ダイアログ ボックスまたは [新しい項目の追加] ダイアログ ボックスで [OK] をクリックすると、これらのパラメーターが、バックグラウンドで実行されているテンプレート ウィザードによって置き換えられます。

テンプレート パラメーターの宣言と有効化

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

  • $safeprojectname$

  • $guid1$

  • $guid5$

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

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

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

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

    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>

参照

その他の技術情報

Visual Studio テンプレート