共用方式為


註冊 Interop 組件命令處理常式

VSPackage 必須向 Visual Studio 註冊,以便整合開發環境 (IDE) 正確路由其命令。

登錄可以藉由手動編輯或使用登錄器 (.rgs) 檔案來更新。 如需詳細資訊,請參閱 Creating Registrar Scripts

受控套件架構 (MPF) 會透過 ProvideMenuResourceAttribute 類別提供這項功能。

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