共用方式為


支援使用者設定

VSPackage 可以定義一或多個設定類別,這些類別是當使用者在 [工具] 功能表上選擇 [匯入/匯出 設定] 命令時,所持續保存的狀態變數群組。 若要啟用此持續性,您可使用 Visual Studio SDK 中的設定 API。

稱為自訂設定點和 GUID 的登錄項目,會定義 VSPackage 的設定類別。 VSPackage 可以支援多個設定類別,每個類別都是由自訂設定點所定義。

  • 以 Interop 組件為基礎的設定實作 (使用 IVsUserSettings 介面) 應該藉由編輯登錄或使用登錄器指令碼 (.rgs 檔案) 來建立自訂設定點。 如需詳細資訊,請參閱 Creating Registrar Scripts

  • 使用 Managed Package Framework (MPF) 的程式碼應該為每個自訂設定點附加 ProvideProfileAttribute 至 VSPackage,以建立自訂設定點。

    如果單一 VSPackage 支援數個自訂設定點,則每個自訂設定點都是由個別類別實作,而且每個都由 ProvideProfileAttribute 類別的唯一執行個體註冊。 因此,實作類別的設定可以支援多個設定類別。

自訂設定點登錄項目詳細資訊

自訂設定點是在下列位置的登錄項目中建立:HKLM\Software\Microsoft\VisualStudio\<Version>\UserSettings\<CSPName>,其中 <CSPName> 是 VSPackage 支援的自訂設定點名稱,而 <Version> 是 Visual Studio 的版本,例如 8.0。

注意

當 Visual Studio 集成開發環境 (IDE) 初始化時,可以使用替代根目錄覆寫 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\<Version> 的根路徑。 如需詳細資訊,請參閱命令列參數

登錄項目的結構如下所示:

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

名稱 類型 資料 描述
(預設值) REG_SZ 自訂設定點的名稱 機碼名稱 <CSPName>是自訂設定點的未當地語系化名稱。

針對以 MPF 為基礎的實作,機碼名稱是藉由將 ProvideProfileAttribute 建構函式的 categoryNameobjectName 引數合併至 categoryName_objectName 而取得。

機碼可以是空的,也可以包含附屬 DLL 中當地語系化字串的參考識別碼。 這個值是從 objectNameResourceID 引數至 ProvideProfileAttribute 建構函式取得。
套件 REG_SZ GUID 實作自訂設定點之 VSPackage 的 GUID。

使用 ProvideProfileAttribute 類別根據MPF 實作,使用包含 VSPackage 的 Type 和反映的建構函式的 objectType 引數來取得此值。
類別 REG_SZ GUID 識別設定類別的 GUID。

針對以 Interop 組件為基礎的實作,這個值可以是任意選擇的 GUID,Visual Studio IDE 會將其傳遞給 ExportSettingsImportSettings 方法。 這兩種方法的所有實作都應該驗證其 GUID 引數。

針對以 MPF 為基礎的實作,此 GUID 是由實作 Visual Studio 設定機制的 Type 類別取得。
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 產生自訂設定點時,它與類別名稱相同。