Interop 어셈블리 명령 처리기를 등록
VSPackage는 IDE(통합 개발 환경)가 해당 명령을 올바르게 라우팅할 수 있도록 Visual Studio에 등록해야 합니다.
레지스트리는 수동으로 편집하거나 등록자(.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과 같습니다.
참고 항목
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