註冊 Interop 組件命令處理常式
VSPackage 必須向 Visual Studio 註冊,以便整合開發環境 (IDE) 正確路由其命令。
登錄可以藉由手動編輯或使用登錄器 (.rgs) 檔案來更新。 如需詳細資訊,請參閱 Creating Registrar Scripts。
受控套件架構 (MPF) 會透過 ProvideMenuResourceAttribute 類別提供這項功能。
- 命令表格式參考資源位於非受控附屬 UI DLL 中。
VSPackage 的命令處理常式註冊
做為使用者介面 (UI) 型命令處理常式的 VSPackage 需要以 VSPackage GUID
命名的登錄項目。 此登錄項目指定 VSPackage UI 資源檔案的位置,以及該檔案內的功能表資源。 登錄項目本身位於 HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\<Version>\Menus 下,其中 <Version> 是 Visual Studio 的版本,例如 9.0。
注意
初始化 Visual Studio 殼層時,可以使用替代根目錄覆寫 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\<Version> 的根路徑。 如需根路徑的詳細資訊,請參閱使用 Windows Installer 安裝 VSPackages。
CTMENU 資源登錄項目
登錄項目的結構為:
HKEY_LOCAL_MACHINE\Software\VisualStudio\<Version>\
Menus\
<GUID> = <Resource Information>
<GUID> 是 VSPackage 的 GUID
,格式的 {XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX}。
<資源資訊> 是由三個以逗號分隔的元素所組成。 這些元素依次是:
<資源 DLL 的路徑>、<功能表資源識別碼>、<功能表版本>
<資源資訊>的欄位如下表所述。
元素 | 描述 |
---|---|
<資源 DLL 的路徑> | 這是包含功能表資源的資源 DLL 之完整路徑,或此為空白,表示將使用 VSPackage 的資源 DLL (如註冊 VSPackage 本身的 Packages 子機碼中所指定)。 通常將此欄位保持空白。 |
<功能表資源識別碼> | 這是 CTMENU 資源的資源識別碼,其中包含從 .vsct 檔案編譯之 VSPackage 的所有 UI 元素。 |
<功能表版本> | 這是做為 CTMENU 資源版本的數字。 Visual Studio 會使用此值來判斷是否需要將 CTMENU 資源的內容與其所有 CTMENU 資源的快取重新合併。 執行 devenv 安裝命令會觸發重新合併。此值最初應設為 1,並在每次變更 CTMENU 資源後和重新合併發生之前遞增。 |
範例
以下是幾個資源項目的範例:
HKEY_LOCAL_MACHINE\Software\VisualStudio\9.0Exp\
Menus\
{019971D6-4685-11D2-B48A-0000F87572EB} = ,1, 10
{1b027a40-8f43-11d0-8d11-00a0c91bc942} = , 10211, 3