Interop 어셈블리 명령 처리기를 등록

VSPackage는 IDE(통합 개발 환경)가 해당 명령을 올바르게 라우팅할 수 있도록 Visual Studio에 등록해야 합니다.

레지스트리는 수동으로 편집하거나 등록자(.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과 같습니다.

참고 항목

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\<Version>의 루트 경로는 Visual Studio 셸이 초기화될 때 대체 루트로 재정의할 수 있습니다. 루트 경로에 대한 자세한 내용은 Windows 설치 관리자를 사용하여 VSPackages 설치를 참조하세요.

CTMENU 리소스 레지스트리 항목

레지스트리 항목의 구조는 다음과 같습니다.

HKEY_LOCAL_MACHINE\Software\VisualStudio\<Version>\
  Menus\
    <GUID> = <Resource Information>

<GUID>은 VSPackage의 GUID로 그 형식은 {XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX}와 같습니다.

<리소스 정보>는 쉼표로 구분된 세 가지 요소로 구성됩니다. 이러한 요소는 순서대로 다음과 같습니다.

<리소스 DLL 경로>, <메뉴 리소스 ID>, <메뉴 버전>

다음 표에서는 <리소스 정보>의 필드에 대해 설명합니다.

요소 설명
<리소스 DLL 경로> 메뉴 리소스가 포함된 리소스 DLL에 대한 전체 경로이거나 VSPackage의 리소스 DLL이 (VSPackage 자체가 등록된 패키지 하위 키에 지정된 대로) 사용되어야 함을 나타내는 빈 상태로 남아 있습니다.

이 필드는 비워 두는 것이 좋습니다.
<메뉴 리소스 ID> 이것은 .vsct에서 컴파일된 상태의 VSPackage 관련 UI 요소를 모두 포함하는 CTMENU 리소스의 리소스 ID입니다.
<메뉴 버전> 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