単一ファイル ジェネレーターの登録
カスタム ツールを Visual Studio で使用できるようにするには、そのツールを登録して、Visual Studio によってインスタンスが作成され、特定のプロジェクト タイプに関連付けられる必要があります。
Visual Studio のレジストリは、プライベート ハイブ (privateregistry.bin) 内にあります。 regedit.exe を開き、「Visual Studio インスタンスのレジストリの編集」の手順に従って、Visual Studio の目的のインストール用のプライベート レジストリ ハイブを読み込みます。
カスタム ツールを登録するには
カスタム ツール DLL は、Visual Studio ローカル レジストリかシステム レジストリの HKEY_CLASSES_ROOT の下に登録します。
たとえば、Visual Studio に付属しているマネージド MSDataSetGenerator カスタム ツールの登録情報を次に示します。
[HKEY_LOCAL_MACHINE\{hive}\SOFTWARE\Microsoft\VisualStudio\17.0_**_Config\CLSID\{E76D53CC-3D4F-40A2-BD4D-4F3419755476}] @="COM+ class: Microsoft.VSDesigner.CodeGenerator.TypedDataSourceGenerator.DataSourceGeneratorWrapper" "InprocServer32"="C:\\WINDOWS\\system32\\mscoree.dll" "ThreadingModel"="Both" "Class"="Microsoft.VSDesigner.CodeGenerator.TypedDataSourceGenerator.DataSourceGeneratorWrapper" "Assembly"="Microsoft.VSDesigner, Version=17.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a"
{hive}
は、レジストリ エディターで privateregistry.bin を読み込んだときに指定した名前であり、インスタンス フォルダー (ここでは17.0_**_Config
) は、お使いのマシン上の Visual Studio インストールに固有のものです。Generators\GUID の下にある目的の Visual Studio ハイブにレジストリ キーを作成します。ここで GUID は、特定の言語のプロジェクト システムかサービスで定義された GUID です。 キーの名前は、カスタム ツールのプログラム的な名前になります。 カスタム ツール キーの値は次のとおりです。
(既定)
省略可能。 カスタム ツールについてのわかりやすい説明を提供します。 このパラメーターは省略可能ですが、使用することをお勧めします。
CLSID
必須。 IVsSingleFileGenerator を実装する COM コンポーネントのクラス ライブラリの識別子を指定します。
GeneratesDesignTimeSource
必須。 このカスタム ツールで生成されたファイルからの型をビジュアル デザイナーで使用できるようにするかどうかを示します。 このパラメーターの値は、ビジュアル デザイナーで使用できない型の場合は 0、ビジュアル デザイナーで使用できる型の場合は 1 である必要があります。
Note
カスタム ツールを使用できるようにする言語ごとに、カスタム ツールを個別に登録する必要があります。
たとえば、MSDataSetGenerator は、言語ごとに 1 回登録します。
[HKEY_LOCAL_MACHINE\{hive}\SOFTWARE\Microsoft\VisualStudio\17.0_**_Config\Generators\{164b10b9-b200-11d0-8c61-00a0c91e29d5}\MSDataSetGenerator] @="Microsoft VB Code Generator for XSD" "CLSID"="{E76D53CC-3D4F-40a2-BD4D-4F3419755476}" "GeneratesDesignTimeSource"=dword:00000001 [HKEY_LOCAL_MACHINE\{hive}\SOFTWARE\Microsoft\VisualStudio\17.0_**_Config\Generators\{fae04ec1-301f-11d3-bf4b-00c04f79efbc}\MSDataSetGenerator] @="Microsoft C# Code Generator for XSD" "CLSID"="{E76D53CC-3D4F-40a2-BD4D-4F3419755476}" "GeneratesDesignTimeSource"=dword:00000001