Visual Studio 메뉴 모음에 메뉴 추가
이 연습에서는 Visual Studio IDE(통합 개발 환경)의 메뉴 모음에 메뉴를 추가하는 방법을 보여 줍니다. IDE 메뉴 모음에는 파일, 편집, 보기, 창 및 도움말과 같은 메뉴 범주가 포함되어 있습니다.
Visual Studio 메뉴 모음에 새 메뉴를 추가하기 전에 명령을 기존 메뉴 내에 배치할지 여부를 고려합니다. 명령 배치에 대한 자세한 내용은 Visual Studio의 메뉴 및 명령을 참조하세요.
메뉴는 프로젝트의 .vsct 파일에 선언됩니다. 메뉴 및 .vsct 파일에 대한 자세한 내용은 명령, 메뉴, 도구 모음을 참조하세요.
이 연습을 완료하면 하나의 명령이 포함된 Test Menu 라는 메뉴를 만들 수 있습니다.
참고 항목
Visual Studio 2019부터 확장에서 제공하는 최상위 메뉴가 확장 메뉴 아래에 배치됩니다.
사용자 지정 명령 항목 템플릿이 있는 VSIX 프로젝트 만들기
TopLevelMenu
라는 VSIX 프로젝트를 만듭니다. “vsix”를 검색하여 새 프로젝트 대화 상자에서 VSIX 프로젝트 템플릿을 찾을 수 있습니다. 자세한 내용은 메뉴 명령으로 확장 만들기를 참조하세요.프로젝트가 열리면 TestCommand라는 사용자 지정 명령 항목 템플릿을 추가합니다. 솔루션 탐색기에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 추가>새 항목을 선택합니다. 새 항목 추가 대화 상자에서 Visual C# /확장성으로 이동하고 명령을 선택합니다. 창 아래쪽의 이름 필드에서 명령 파일 이름을 TestCommand.cs로 변경합니다.
IDE 메뉴 모음의 메뉴 만들기
솔루션 탐색기에서 TopLevelMenuPackage.vsct를 엽니다.
파일 끝에는 여러
<GuidSymbol>
노드가 포함된<Symbols>
노드가 있습니다.guidTopLevelMenuPackageCmdSet
이라는 노드에서 다음과 같이 새 기호를 추가합니다.<IDSymbol name="TopLevelMenu" value="0x1021"/>
<Commands>
노드에서<Groups>
바로 앞에 빈<Menus>
노드를 만듭니다.<Menus>
노드에서 다음과 같이<Menu>
노드를 추가합니다.<Menus> <Menu guid="guidTopLevelMenuPackageCmdSet" id="TopLevelMenu" priority="0x700" type="Menu"> <Parent guid="guidSHLMainMenu" id="IDG_VS_MM_TOOLSADDINS" /> <Strings> <ButtonText>Test Menu</ButtonText> </Strings> </Menu> </Menus>
메뉴의
guid
와id
값은 명령 집합과 명령 집합의 특정 메뉴를 지정합니다.부모의
guid
및id
값은 도구 및 추가 기능 메뉴가 포함된 Visual Studio 메뉴 모음의 섹션에 메뉴를 배치합니다.<ButtonText>
요소는 메뉴 항목에 텍스트가 표시되도록 지정합니다.<Groups>
섹션에서<Group>
을 찾고 방금 추가한 메뉴를 가리키도록<Parent>
요소를 변경합니다.<Groups> <Group guid="guidTopLevelMenuPackageCmdSet" id="MyMenuGroup" priority="0x0600"> <Parent guid="guidTopLevelMenuPackageCmdSet" id="TopLevelMenu"/> </Group> </Groups>
이렇게 하면 그룹이 새 메뉴의 일부가 됩니다.
<Buttons>
섹션에서<Button>
노드를 찾습니다. 그런 다음<Strings>
노드에서<ButtonText>
요소를Test Command
로 변경합니다.Visual Studio 패키지 템플릿에서 부모가
MyMenuGroup
로 설정된Button
요소를 생성했습니다. 그 결과, 이 명령이 메뉴에 나타납니다.
확장 빌드 및 테스트
프로젝트를 빌드하고 디버깅을 시작합니다. 실험적 인스턴스의 인스턴스가 나타나야 합니다.
실험적 인스턴스의 확장 메뉴에는 테스트 메뉴 메뉴가 포함되어야 합니다.
테스트 메뉴 메뉴에서 테스트 명령을 선택합니다.
메시지 상자가 나타나 "TestCommand Inside TopLevelMenu.TestCommand.MenuItemCallback()"이라는 메시지가 표시됩니다.