次の方法で共有


ユーザー設定のサポート

VSPackage では、1 つ以上の設定カテゴリを定義できます。これは、ユーザーが [ツール] メニューの [設定のインポート/エクスポート] コマンドを選択したときに保持される状態変数のグループです。 この永続化を有効にするには、Visual Studio SDK の設定 API を使用します。

カスタム設定ポイントと GUID と呼ばれるレジストリ エントリは、VSPackage の設定カテゴリを定義します。 VSPackage では、カスタム設定ポイントによって定義された複数の設定カテゴリをサポートできます。

  • 相互運用機能アセンブリ ( IVsUserSettings インターフェイスを使用) に基づく設定の実装では、レジストリを編集するか、レジストラー スクリプト (.rgs ファイル) を使用してカスタム設定ポイントを作成する必要があります。 詳細については、「 レジストラー スクリプトの作成」を参照してください。

  • マネージド パッケージ フレームワーク (MPF) を使用するコードでは、カスタム設定ポイントごとに VSPackage に ProvideProfileAttribute をアタッチして、カスタム設定ポイントを作成する必要があります。

    1 つの VSPackage で複数のカスタム設定ポイントがサポートされている場合、各カスタム設定ポイントは個別のクラスによって実装され、それぞれが ProvideProfileAttribute クラスの一意のインスタンスによって登録されます。 そのため、クラスを実装する設定では、複数の設定カテゴリをサポートできます。

カスタム設定ポイント レジストリ エントリの詳細

カスタム設定ポイントは、HKLM\Software\Microsoft\VisualStudio\<Version>\UserSettings\<CSPName> のレジストリ エントリに作成されます。ここで、<CSPName>は VSPackage がサポートするカスタム設定ポイントの名前で、<Version> は Visual Studio のバージョン (例: 8.0) です。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\<Version>のルート パスは、Visual Studio 統合開発環境 (IDE) が初期化されたときに代替ルートでオーバーライドできます。 詳細については、「 Command-Line スイッチ」を参照してください。

レジストリ エントリの構造を次に示します。

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

名前 タイプ データ Description
(既定値) REG_SZ カスタム設定ポイントの名前 キーの名前 <CSPName>は、カスタム設定ポイントの未割り当て名です。

MPF に基づく実装の場合、キーの名前は、categoryName コンストラクターのobjectName引数とProvideProfileAttribute引数をcategoryName_objectNameに結合することによって取得されます。

キーは空にすることも、サテライト DLL 内のローカライズされた文字列への参照 ID を含めることもできます。 この値は、objectNameResourceID コンストラクターへのProvideProfileAttribute引数から取得されます。
パッケージ REG_SZ GUID カスタム設定ポイントを実装する VSPackage の GUID。

ProvideProfileAttribute クラスを使用した MPF に基づく実装では、VSPackage のobjectTypeとリフレクションを含むコンストラクターのType引数を使用して、この値を取得します。
カテゴリ REG_SZ GUID 設定カテゴリを識別する GUID。

相互運用機能アセンブリに基づく実装の場合、この値は任意に選択された GUID にすることができます。この GUID は、Visual Studio IDE が ExportSettings および ImportSettings メソッドに渡します。 これら 2 つのメソッドのすべての実装では、GUID 引数を検証する必要があります。

MPF に基づく実装の場合、この GUID は、Visual Studio 設定メカニズムを実装するクラスの Type によって取得されます。
ResourcePackage REG_SZ GUID Optional.

実装する VSPackage で指定されていない場合は、ローカライズされた文字列を含むサテライト DLL へのパス。

MPF はリフレクションを使用して正しいリソース VSPackage を取得するため、 ProvideProfileAttribute クラスはこの引数を設定しません。
AlternateParent REG_SZ このカスタム設定ポイントを含む [ツール オプション] ページの下にあるフォルダーの名前。 Optional.

この値を設定する必要があるのは、設定の実装で、状態を保存するオートメーション モデルのメカニズムではなく、Visual Studio SDK の永続化メカニズムを使用する ツール オプション ページをサポートしている場合のみです。

このような場合、AlternateParent キーの値は、特定の topic ページを識別するために使用されるtopic.sub-topic文字列の セクションです。 たとえば、[ ToolsOptions] ページ "TextEditor.Basic" AlternateParent の値は "TextEditor"されます。

ProvideProfileAttributeがカスタム設定ポイントを生成する場合は、カテゴリ名と同じです。