.vsdir ファイルを使用した [項目の追加] ダイアログ ボックスおよび ダイアログ ボックスへのウィザードの追加
VSDir ファイルは、.vsdir 拡張子が付いたテキスト ファイルです。このファイルは、[項目の追加] ダイアログ ボックスおよび [新しいプロジェクト] ダイアログ ボックスにそのファイルの項目を表示する方法に関する情報を提供するために作成します。その情報には、項目の名前、項目の表示順、および項目と一緒に表示されるアイコンが含まれます。これらの項目はすべて変更できます。VSDir ファイルは、[項目の追加] ダイアログ ボックスおよび [新しいプロジェクト] ダイアログ ボックスに新しいテンプレートまたはウィザードを追加する場合に使用します。
既定の VSDir ファイルはありません。ファイルが存在する場合、Visual Studio で、そのファイルが読み取られ、その内容がダイアログ ボックスに追加されます。ファイルがない場合は、既定のテンプレートおよびウィザードが表示されます。1 つのディレクトリに複数の VSDir ファイルを配置し、すべてのファイルの内容がダイアログ ボックスに追加されるようにすることもできます。通常、1 つの VSDir ファイルには、複数のウィザード、フォルダー、およびテンプレートを記述したレコードが含まれます。ファイルの各レコードは、改行文字で区切られています。各レコード内のフィールドは、パイプ (|) 文字で区切られています。意味のあるデータを持たない省略可能なフィールドには、プレースホルダーとしてゼロ (0) または空白を含めます。フィールドに入力された文字列は、引用符で囲む必要がありません。
VSDir ファイル コンポーネント
VSDir ファイルの例を次に示します。最初の例では、「チュートリアル : ウィザードの作成」で作成した 1 つのウィザードを参照します。
MyNewWizard.vsz| |A New Wizard|1|My New Wizard|C:\Addins\MyNewWizard\MyNewWizard\bin\Debug| | |MyNewWizard99
次の VSDir ファイルの例では、多数のウィザード .vsz ファイルを、(このトピックで後述する) 各ウィザードのその他の関連情報と合わせて参照します。この例の VSDir ファイルは、前の例の VSDir ファイルと異なり、文字列をリテラル文字列ではなくリソース ID 番号として参照します。また、これらのファイルは、GUID を使用して DLL を参照します。
..\..\Projects\csharp building blocks\BusinessFacade.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5015|10|#5022|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|127|0|Project
..\..\Projects\csharp building blocks\BusinessRules.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5016|20|#5023|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|128|0|Project
..\..\Projects\csharp building blocks\DataAccess.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5017|30|#5024|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|129|0|Project
..\..\Projects\csharp building blocks\SystemFrameworks.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5018|40|#5025|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|130|0|Project
..\..\Projects\csharp building blocks\WebService.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5019|50|#5026|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4547|1|WebService|Web
..\..\Projects\csharp building blocks\WebUI.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5020|60|#5027|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|131|1|WebUI|web
..\..\Projects\csharp building blocks\WinUI.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5021|70|#5028|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|132|0|Project
VSDir ファイル内のレコードごとに、以下のフィールドを指定できます。
Field |
説明 |
---|---|
RelPathName |
必ず指定します。ウィザードの .vsz ファイル名 (MyWizard.vsz など) です。Visual Studio のインストール ディレクトリに対して相対的なパス名である必要があります。 |
{clsidPackage} |
省略可能です。リソースがローカライズされた DLL を含む製品 (Visual C++ など) を表す GUID です。通常、サードパーティのウィザードに対応する VSDir ファイルの場合、このフィールドは空白になります。 |
LocalizedName |
省略可能です。ローカライズ可能なウィザード名またはテンプレート名、および [項目の追加] ダイアログ ボックスに表示される名前です。文字列または #ResID 形式のリソース識別子を指定できます。 |
SortPriority |
必ず指定します。ウィザードの並べ替え順序と相対優先順位を表す整数です。この値が 1 の場合に最優先されます。たとえば、優先順位が "1" の項目は、同等のほかの項目と共に表示されます。その後に優先順位 2 以下のすべての項目が表示されます。 |
Description |
必ず指定します。項目の選択時に [項目の追加] ダイアログ ボックスに表示される、テンプレートまたはウィザードのローカライズできる説明です。文字列または #ResID 形式のリソース識別子を指定できます。このフィールドは、テンプレート ファイルだけに適用され、フォルダーには適用されません。 |
DLLPath または {clsidPackage} |
必ず指定します。DLL ファイルまたは EXE ファイルへの完全パスか、ウィザード用に読み込むためのアイコンを含む .dll ファイルを持つ製品の GUID を指定します。アイコンは、指定の IconResourceId を使用して、DLL ファイルまたは EXE ファイルからリソースとして読み込まれます。この設定は、指定されていればアイコンの場所に関して {clsidPackage} をオーバーライドします。このフィールドは、テンプレート ファイルだけに適用され、フォルダーには適用されません。 |
IconResourceId |
省略可能です。表示するアイコンを指定する DLL ファイル内のリソース識別子です。アイコンが定義されていない場合、環境ではファイルの既定のアイコンが項目と同じ拡張子を持つファイルに置き換えられます。このフィールドは、テンプレート ファイルだけに適用され、フォルダーには適用されません。 |
Flags |
省略可能です。後述の Flags の説明と表を参照してください。このフィールドは、テンプレート ファイルだけに適用され、フォルダーには適用されません。 |
SuggestedBaseName |
必ず指定します。ダイアログ ボックスの [プロジェクト名] フィールドに表示される既定のウィザード名です。文字列または #ResID 形式のリソース識別子を指定できます。名前が一意でない場合は、末尾に整数が追加されます。たとえば、MyFile.aspx は MyFile1.aspx に変更される場合があります。名前を指定しない場合は "Project" が使用されます。このフィールドは、テンプレート ファイルだけに適用され、フォルダーには適用されません。 |
説明
意味のあるデータを持たない省略可能なフィールドには、プレースホルダーとして 0 (ゼロ) を格納する必要があります。ローカライズされた名前を指定しないと、相対パスが使用されます。
アイコンが定義されていない場合、IDE は、その拡張子を持つファイルの既定のアイコンで代用します。
基本名を指定しない場合は、"Project" が使用されます。
Flags
ビット単位のフラグのグループであり、[項目の追加] ダイアログ ボックスの [名前] フィールドと [場所] フィールドを有効または無効にするために使用されます。つまり、ユーザーが [追加] メニューの [新しい項目の追加] をクリックした場合に、名前と場所を [テンプレート] ペインに表示するかどうかはプロジェクトによって決まりますが、そのユーザーが名前と場所を使用できるかどうかはフラグによって決まります。Flags の値には、各フラグの値を合計したものを設定します。つまり、"33" は VSDIRFLAG_NonLocalTemplate | VSDIRITEM_DisableLocationField と等価です。
フラグ名
10 進形式での値
Description
VSDIRFLAG_NonLocalTemplate
1
非ローカルのユーザー インターフェイスの動作と保存機構を使用します。
VSDIRFLAG_BlankSolution
2
空のソリューションを作成します。プロジェクトは作成されません。
VSDIRFLAG_DisableBrowseButton
4
このプロジェクトまたは項目の [参照] ボタンを無効にします。
VSDIRFLAG_DontAddDefExtension
8
項目に付ける名前に、既定の拡張子を付加しません(この設定は、プロジェクトに対しては無効です)。
VSDIRFLAG_DisableLocationField
32
このプロジェクトまたは項目の [場所] フィールドを無効にします。
VSDIRFLAG_DontInitNameField
4096
このプロジェクトまたは項目の [プロジェクト名] フィールドに、有効な名前を初期値として設定しません。
VSDIRFLAG_DisableNameField
8192
このプロジェクトまたは項目の [プロジェクト名] フィールドを無効にします。