プロジェクトと項目テンプレートの登録
プロジェクト タイプでは、プロジェクト テンプレートとプロジェクト項目テンプレートが配置されているディレクトリを登録する必要があります。 Visual Studio では、プロジェクト タイプに関連付けられた登録情報を使用して、[新しいプロジェクトの追加] および [新しい項目の追加] ダイアログ ボックスに表示する内容を判断します。
詳細については、「プロジェクト テンプレートとプロジェクト項目テンプレートの追加」を参照してください。
プロジェクトのレジストリ エントリ
次の例では、HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\<Version> の下にあるレジストリ エントリを示します。 下の表では、例で使用される要素について説明します。
[Projects\{ProjectGUID}]
@="MyProjectType"
"DisplayName"="#2"
"Package"="{VSPackageGUID}"
"ProjectTemplatesDir"="C:\\MyProduct\\MyProjectTemplates"
名前 | タイプ | 説明 |
---|---|---|
@ | REG_SZ | この種類のプロジェクトの既定の名前。 |
表示名 | REG_SZ | パッケージに登録されているサテライト DLL から取得する名前のリソース ID。 |
Package | REG_SZ | パッケージに登録されているパッケージのクラス ID。 |
ProjectTemplatesDir | REG_SZ | プロジェクト テンプレート ファイルの既定のパス。 プロジェクト テンプレート ファイルは、[新しいプロジェクト] テンプレートによって表示されます。 |
項目テンプレートの登録
項目テンプレートを格納するディレクトリを登録する必要があります。
[Projects\{ProjectGUID}\AddItemTemplates\TemplateDirs\{VSPackageGUID}\1]
@="#7"
"TemplatesDir"="C:\\MyProduct\\MyProjectItemTemplates "
"TemplatesLocalizedSubDir"="#10"
"SortPriority"=dword:00000064
名前 | タイプ | 説明 |
---|---|---|
@ | REG_SZ | 項目の追加テンプレートのリソース ID。 |
TemplatesDir | REG_SZ | [新しい項目の追加] ウィザードのダイアログ ボックスに表示されるプロジェクト項目のパス。 |
TemplatesLocalizedSubDir | REG_SZ | ローカライズされたテンプレートを保持する TemplatesDir のサブディレクトリに名前を指定する文字列のリソース ID。 サテライト DLL がある場合、Visual Studio ではそこから文字列リソースを読み込むため、サテライト DLL ごとに異なるローカライズされたサブディレクトリ名を含めることができます。 |
SortPriority | REG_DWORD | [新しい項目の追加] ダイアログ ボックスでのテンプレートの表示順序を制御するには、SortPriority を設定します。 SortPriority 値は大きいほどテンプレート リストの前の方に表示されます。 |
ファイル フィルターの登録
必要に応じて、ファイル名の入力が求められたときに Visual Studio で使用されるフィルターを登録できます。 たとえば、[ファイルを開く] ダイアログ ボックスの Visual C# フィルターは次のとおりです。
Visual C# Files (*.cs,*.resx,*.settings,*.xsd,*.wsdl);*.cs,*.resx,*.settings,*.xsd,*.wsdl)
複数のフィルターの登録をサポートするために、各フィルターは HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\<Version>\Projects\{<ProjectGUID>}\Filters\<Subkey> の下に独自のサブキーとして登録されます。 サブキー名は任意です。Visual Studio ではサブキーの名前が無視され、その値だけが使用されます。
次の表に示すように、フラグを設定して、フィルターを使用するコンテキストを制御できます。 フィルターにフラグが設定されていない場合、[既存項目の追加] ダイアログ ボックスと [ファイルを開く] ダイアログ ボックスの共通フィルターの後に一覧表示されますが、[フォルダーを指定して検索] ダイアログ ボックスでは使用されません。
[Projects\{ProjectGUID}\Filters\MyLanguageFilter]
@="#3"
"CommonOpenFilesFilter"=dword:00000000
"CommonFindFilesFilter"=dword:00000000
"FindInFilesFilter"=dword:00000000
"NotOpenFileFilter"=dword:00000000
"NotAddExistingItemFilter"=dword:00000000
"SortPriority"=dword:00000064
名前 | タイプ | 説明 |
---|---|---|
CommonFindFilesFilter | REG_DWORD | フィルターを、[フォルダーを指定して検索] ダイアログ ボックスの共通フィルターの 1 つにします。 共通フィルターは、フィルター一覧で、共通としてマークが付けられていないフィルターの前に一覧表示されます。 |
CommonOpenFilesFilter | REG_DWORD | フィルターを、[ファイルを開く] ダイアログ ボックスの共通フィルターの 1 つにします。 共通フィルターは、フィルター一覧で、共通としてマークが付けられていないフィルターの前に一覧表示されます。 |
FindInFilesFilter | REG_DWORD | フィルターを、[フォルダーを指定して検索] ダイアログ ボックスの共通フィルターの後にフィルターを一覧表示します。 |
NotOpenFileFilter | REG_DWORD | フィルターが [ファイルを開く] ダイアログ ボックスで使用されないことを示します。 |
NotAddExistingItemFilter | REG_DWORD | フィルターが [既存項目の追加] ダイアログ ボックスで使用されないことを示します。 |
SortPriority | REG_DWORD | SortPriority を設定して、フィルターを表示する順序を制御します。 SortPriority 値は大きいほどフィルター一覧の前の方に表示されます。 |
ディレクトリの構造
VSpackage では、統合開発環境 (IDE) によって場所が登録されていれば、ローカルまたはリモートのディスク上の任意の場所にテンプレート ファイルとフォルダーを配置できます。 ただし、編成しやすくするために、製品のインストール パスの下に次のディレクトリ構造を使用することをお勧めします。
\Templates
\Projects (プロジェクト テンプレートを含みます)
\Applications
\Components
\ProjectItems (プロジェクト項目を含みます)
\Class
\Form
\Web Page
\HelperFiles (複数ファイル プロジェクト項目で使用されるファイルを含みます)
\WizardFiles