ユーザー設定のサポート

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 でカスタム設定ポイントが生成されるときは、カテゴリ名と同じになります。