ユーザー設定のサポート
VSPackage では、1 つまたは複数の設定カテゴリを定義できます。これは、ユーザーが [ツール] メニューの [設定のインポート/エクスポート] コマンドを選択したときに保持される状態変数のグループです。 この永続化を有効にするには、Visual Studio SDK の設定 API を使用します。
カスタム設定ポイントと呼ばれるレジストリ エントリと GUID によって VSPackage の設定カテゴリが定義されます。 VSPackage では複数の設定カテゴリをサポートでき、各設定カテゴリはカスタム設定ポイントによって定義されます。
(IVsUserSettings インターフェイスを使用して) 相互運用機能アセンブリに基づく設定を実装するには、レジストリを編集するか、レジストラー スクリプト (.rgs ファイル) を使用して、カスタム設定ポイントを作成する必要があります。 詳細については、「 Creating Registrar Scripts」を参照してください。
Managed Package Framework (MPF) を使用するコードでは、カスタム設定ポイントごとに ProvideProfileAttribute を VSPackage にアタッチすることによって、カスタム設定ポイントを作成する必要があります。
1 つの VSPackage で複数のカスタム設定ポイントをサポートしている場合、カスタム設定ポイントはそれぞれ別のクラスによって実装され、ProvideProfileAttribute クラスの一意のインスタンスによって登録されます。 その結果、設定を実装するクラスでは、複数の設定カテゴリをサポートできます。
カスタム設定ポイントのレジストリ エントリの詳細
カスタム設定ポイントは、次の場所にあるレジストリ エントリに作成されます: HKLM\Software\Microsoft\VisualStudio\<Version>\UserSettings\<CSPName>
。この <CSPName>
は VSPackage でサポートされているカスタム設定ポイントの名前です。<Version> は Visual Studio のバージョンです (たとえば、8.0)。
Note
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\<Version> のルート パスは、Visual Studio 統合開発環境 (IDE) の初期化時に代替ルートでオーバーライドできます。 詳細については、コマンド ライン スイッチに関するページを参照してください。
レジストリ エントリの構造を次に示します。
HKLM\Software\Microsoft\VisualStudio\<Version>\UserSettings\
<CSPName
>= s '#12345'
Package = '{XXXXXX XXXX XXXX XXXX XXXXXXXXX}'
Category = '{YYYYYY YYYY YYYY YYYY YYYYYYYYY}'
ResourcePackage = '{ZZZZZZ ZZZZ ZZZZ ZZZZ ZZZZZZZZZ}'
AlternateParent = CategoryName
名前 | Type | データ | 説明 |
---|---|---|---|
EnterprisePublishing | REG_SZ | カスタム設定ポイントの名前 | キーの名前 (<CSPName >) は、カスタム設定ポイントのローカライズされていない名前です。MPF に基づく実装では、ProvideProfileAttribute コンストラクターの categoryName 引数と objectName 引数を categoryName_objectName に組み合わせてキーの名前を取得します。キーは空にすることも、サテライト DLL 内のローカライズされた文字列への参照 ID を含めることもできます。 この値は、ProvideProfileAttribute コンストラクターの objectNameResourceID 引数から取得されます。 |
Package | REG_SZ | GUID | カスタム設定ポイントを実装する VSPackage の GUID。 ProvideProfileAttribute クラスを使用する MPF に基づく実装では 、VSPackage の Type およびリフレクションを含むコンストラクターの objectType 引数を使用して、この値を取得します。 |
カテゴリ | REG_SZ | GUID | 設定カテゴリを識別する GUID。 相互運用機能アセンブリに基づく実装では、この値を任意に選択した GUID にすることができます。これは Visual Studio IDE によって ExportSettings メソッドと ImportSettings メソッドに渡されます。 これら 2 つのメソッドのすべての実装では、GUID 引数を検証する必要があります。 MPF に基づく実装では、Visual Studio の設定メカニズムを実装するクラスの Type によってこの GUID を取得します。 |
ResourcePackage | REG_SZ | GUID | 省略可能。 実装する VSPackage で指定されていない場合の、ローカライズされた文字列を含むサテライト DLL へのパス。 MPF では、リフレクションを使用して適切なリソース VSPackage を取得するため、ProvideProfileAttribute クラスはこの引数を設定しません。 |
AlternateParent | REG_SZ | このカスタム設定ポイントを含むツール オプション ページの下にあるフォルダーの名前。 | 省略可能。 設定の実装で、オートメーション モデルのメカニズムではなく、Visual Studio SDK の永続化メカニズムを使用して状態を保存するツール オプション ページがサポートされている場合にのみ、この値を設定する必要があります。 このような場合、AlternateParent キーの値は、特定の ToolsOptions ページを識別するために使用される topic.sub-topic 文字列の topic セクションです。 たとえば、ToolsOptions ページ "TextEditor.Basic" の場合、AlternateParent の値は "TextEditor" になります。ProvideProfileAttribute でカスタム設定ポイントが生成されるときは、カテゴリ名と同じになります。 |