Visual Studio 메뉴 모음에 메뉴 추가Add a menu to the Visual Studio menu bar

이 연습에서는 Visual Studio IDE (통합 개발 환경)의 메뉴 모음에 메뉴를 추가 하는 방법을 보여 줍니다.This walkthrough shows how to add a menu to the menu bar of the Visual Studio integrated development environment (IDE). IDE 메뉴 모음에는 파일, 편집, 보기, 도움말과 같은 메뉴 범주가 있습니다.The IDE menu bar contains menu categories such as File, Edit, View, Window, and Help.

Visual Studio 메뉴 모음에 새 메뉴를 추가 하기 전에 기존 메뉴에 명령을 배치 해야 하는지 여부를 고려 합니다.Before adding a new menu to the Visual Studio menu bar, consider whether your commands should be placed within an existing menu. 명령 배치에 대 한 자세한 내용은 Visual Studio에 대 한 메뉴 및 명령을 참조 하세요.For more information about command placement, see Menus and commands for Visual Studio.

메뉴는 프로젝트의 . vsct 파일에서 선언 됩니다.Menus are declared in the .vsct file of the project. 메뉴 및 vsct 파일에 대 한 자세한 내용은 명령, 메뉴 및 도구 모음을 참조 하세요.For more information about menus and .vsct files, see Commands, menus, and toolbars.

이 연습을 완료 하면 하나의 명령을 포함 하는 테스트 메뉴 라는 메뉴를 만들 수 있습니다.By completing this walkthrough, you can create a menu named Test Menu that contains one command.

참고

Visual Studio 2019부터 확장에서 제공 하는 최상위 메뉴는 확장 메뉴 아래에 배치 됩니다.Starting in Visual Studio 2019, top level menus contributed by extensions are placed under the Extensions menu.

사전 준비 사항Prerequisites

Visual Studio 2015 부터는 다운로드 센터에서 Visual Studio SDK를 설치 하지 않습니다.Starting in Visual Studio 2015, you do not install the Visual Studio SDK from the download center. Visual Studio 설치 프로그램에서 선택적 기능으로 포함 됩니다.It is included as an optional feature in Visual Studio setup. VS SDK는 나중에 설치할 수도 있습니다.You can also install the VS SDK later on. 자세한 내용은 Visual STUDIO SDK 설치를 참조 하세요.For more information, see Install the Visual Studio SDK.

사용자 지정 명령 항목 템플릿이 있는 VSIX 프로젝트 만들기Create a VSIX project that has a custom command item template

  1. 이라는 VSIX 프로젝트를 만듭니다 TopLevelMenu .Create a VSIX project named TopLevelMenu. 새 프로젝트 대화 상자에서 "vsix"를 검색 하 여 vsix 프로젝트 템플릿을 찾을 수 있습니다.You can find the VSIX project template in the New Project dialog by searching for "vsix". 자세한 내용은 메뉴 명령을 사용 하 여 확장 만들기를 참조 하세요.For more information, see Create an extension with a menu command.
  1. 프로젝트가 열리면 testcommand 라는 사용자 지정 명령 항목 템플릿을 추가 합니다.When the project opens, add a custom command item template named TestCommand. 솔루션 탐색기 에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭 하 고 > 새 항목 추가를 선택 합니다.In the Solution Explorer, right-click the project node and select Add > New Item. 새 항목 추가 대화 상자에서 Visual c #/확장성 으로 이동 하 고 사용자 지정 명령 을 선택 합니다.In the Add New Item dialog, go to Visual C# / Extensibility and select Custom Command. 창 맨 아래에 있는 이름 필드에서 명령 파일 이름을 TestCommand.cs 로 변경 합니다.In the Name field at the bottom of the window, change the command file name to TestCommand.cs.
  1. 프로젝트가 열리면 testcommand 라는 사용자 지정 명령 항목 템플릿을 추가 합니다.When the project opens, add a custom command item template named TestCommand. 솔루션 탐색기 에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭 하 고 > 새 항목 추가를 선택 합니다.In the Solution Explorer, right-click the project node and select Add > New Item. 새 항목 추가 대화 상자에서 Visual c #/확장성 으로 이동 하 고 명령 을 선택 합니다.In the Add New Item dialog, go to Visual C# / Extensibility and select Command. 창 맨 아래에 있는 이름 필드에서 명령 파일 이름을 TestCommand.cs 로 변경 합니다.In the Name field at the bottom of the window, change the command file name to TestCommand.cs.

IDE 메뉴 모음에서 메뉴 만들기Create a menu on the IDE menu bar

  1. 솔루션 탐색기 에서 testcommandpackage. vsct 를 엽니다.In Solution Explorer, open TestCommandPackage.vsct.

    파일의 끝에는 <Symbols> 여러 노드를 포함 하는 노드가 있습니다 <GuidSymbol> .At the end of the file, there is a <Symbols> node that contains several <GuidSymbol> nodes. 이라는 노드에서 다음과 guidTestCommandPackageCmdSet 같이 새 기호를 추가 합니다.In the node named guidTestCommandPackageCmdSet, add a new symbol, as follows:

    <IDSymbol name="TopLevelMenu" value="0x1021"/>
    
  2. <Menus>이전 처럼 노드에 빈 노드를 만듭니다 <Commands> <Groups> .Create an empty <Menus> node in the <Commands> node, just before <Groups>. 노드에서 다음과 <Menus> 같이 노드를 추가 합니다 <Menu> .In the <Menus> node, add a <Menu> node, as follows:

    <Menus>
          <Menu guid="guidTestCommandPackageCmdSet" id="TopLevelMenu" priority="0x700" type="Menu">
            <Parent guid="guidSHLMainMenu"
                    id="IDG_VS_MM_TOOLSADDINS" />
            <Strings>
              <ButtonText>Test Menu</ButtonText>
            </Strings>
        </Menu>
    </Menus>
    

    guid메뉴의 및 값은 명령 집합 id 및 명령 집합의 특정 메뉴를 지정 합니다.The guid and id values of the menu specify the command set and the specific menu in the command set.

    guid id 부모의 및 값은 도구 및 추가 기능 메뉴가 포함 된 Visual Studio 메뉴 모음의 섹션에서 메뉴를 배치 합니다.The guid and id values of the parent position the menu on the section of the Visual Studio menu bar that contains the Tools and Add-ins menus.

    <ButtonText>요소는 텍스트가 메뉴 항목에 나타나도록 지정 합니다.The <ButtonText> element specifies that the text should appear in the menu item.

  3. 섹션에서 <Groups> 를 찾고 <Group> <Parent> 방금 추가한 메뉴를 가리키도록 요소를 변경 합니다.In the <Groups> section, find the <Group> and change the <Parent> element to point to the menu we just added:

    <Groups>
        <Group guid="guidTestCommandPackageCmdSet" id="MyMenuGroup" priority="0x0600">
            <Parent guid="guidTestCommandPackageCmdSet" id="TopLevelMenu"/>
        </Group>
    </Groups>
    

    이렇게 하면 그룹이 새 메뉴의 일부가 됩니다.This makes the group part of the new menu.

  1. 솔루션 탐색기 에서 TopLevelMenuPackage 을 엽니다.In Solution Explorer, open TopLevelMenuPackage.vsct.

    파일의 끝에는 <Symbols> 여러 노드를 포함 하는 노드가 있습니다 <GuidSymbol> .At the end of the file, there is a <Symbols> node that contains several <GuidSymbol> nodes. 이라는 노드에서 다음과 guidTopLevelMenuPackageCmdSet 같이 새 기호를 추가 합니다.In the node named guidTopLevelMenuPackageCmdSet, add a new symbol, as follows:

    <IDSymbol name="TopLevelMenu" value="0x1021"/>
    
  2. <Menus>이전 처럼 노드에 빈 노드를 만듭니다 <Commands> <Groups> .Create an empty <Menus> node in the <Commands> node, just before <Groups>. 노드에서 다음과 <Menus> 같이 노드를 추가 합니다 <Menu> .In the <Menus> node, add a <Menu> node, as follows:

    <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 및 명령 집합의 특정 메뉴를 지정 합니다.The guid and id values of the menu specify the command set and the specific menu in the command set.

    guid id 부모의 및 값은 도구 및 추가 기능 메뉴가 포함 된 Visual Studio 메뉴 모음의 섹션에서 메뉴를 배치 합니다.The guid and id values of the parent position the menu on the section of the Visual Studio menu bar that contains the Tools and Add-ins menus.

    <ButtonText>요소는 텍스트가 메뉴 항목에 나타나도록 지정 합니다.The <ButtonText> element specifies that the text should appear in the menu item.

  3. 섹션에서 <Groups> 를 찾고 <Group> <Parent> 방금 추가한 메뉴를 가리키도록 요소를 변경 합니다.In the <Groups> section, find the <Group> and change the <Parent> element to point to the menu we just added:

    <Groups>
        <Group guid="guidTopLevelMenuPackageCmdSet" id="MyMenuGroup" priority="0x0600">
            <Parent guid="guidTopLevelMenuPackageCmdSet" id="TopLevelMenu"/>
        </Group>
    </Groups>
    

    이렇게 하면 그룹이 새 메뉴의 일부가 됩니다.This makes the group part of the new menu.

  1. 섹션에서 <Buttons> 노드를 찾습니다 <Button> .In the <Buttons> section, find the <Button> node. 그런 다음 <Strings> 노드에서 <ButtonText> 요소를로 변경 Test Command 합니다.Then, in the <Strings> node, change the <ButtonText> element to Test Command.

    Visual StudioVisual Studio패키지 템플릿에서 Button 부모 집합이로 설정 된 요소를 생성 합니다 MyMenuGroup .Notice that the Visual StudioVisual Studio Package template has generated a Button element that has its parent set to MyMenuGroup. 그러면이 명령이 메뉴에 표시 됩니다.As a result, this command appears on your menu.

확장 빌드 및 테스트Build and test the extension

  1. 프로젝트를 빌드하고 디버깅을 시작합니다.Build the project and start debugging. 실험적 인스턴스의 인스턴스가 표시 되어야 합니다.An instance of the experimental instance should appear.
  1. 실험적 인스턴스의 메뉴 모음은 테스트 메뉴 메뉴를 포함 해야 합니다.The menu bar in the experimental instance should contain a Test Menu menu.
  1. 실험적 인스턴스의 확장 메뉴에는 테스트 메뉴 메뉴가 포함 되어야 합니다.The Extensions menu in the experimental instance should contain a Test Menu menu.
  1. 테스트 메뉴 메뉴에서 테스트 명령 을 선택 합니다.On the Test Menu menu, select Test Command.

    메시지 상자가 나타나고 "TestCommand in TopLevelMenu. MenuItemCallback ()" 라는 메시지가 표시 됩니다.A message box should appear and display the message "TestCommand Inside TopLevelMenu.TestCommand.MenuItemCallback()".

참고 항목See also