支援使用者設定
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 建構函式的 categoryName 和 objectName 引數合併至 categoryName_objectName 而取得。機碼可以是空的,也可以包含附屬 DLL 中當地語系化字串的參考識別碼。 這個值是從 objectNameResourceID 引數至 ProvideProfileAttribute 建構函式取得。 |
套件 | REG_SZ | GUID | 實作自訂設定點之 VSPackage 的 GUID。 使用 ProvideProfileAttribute 類別根據MPF 實作,使用包含 VSPackage 的 Type 和反映的建構函式的 objectType 引數來取得此值。 |
類別 | REG_SZ | GUID | 識別設定類別的 GUID。 針對以 Interop 組件為基礎的實作,這個值可以是任意選擇的 GUID,Visual Studio IDE 會將其傳遞給 ExportSettings 和 ImportSettings 方法。 這兩種方法的所有實作都應該驗證其 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 產生自訂設定點時,它與類別名稱相同。 |