자습서 - 첫 번째 확장 만들기: 헬로 월드

이 Hello World 예제는 Visual Studio에서 첫 번째 확장을 만드는 과정을 안내합니다. 이 자습서에서는 Visual Studio에 새 명령을 추가하는 방법을 보여 줍니다.

이 과정에서는 다음 방법을 알아봅니다.

이 예제에서는 Visual C#을 사용하여 다음과 같은 "Say 헬로 월드!" 사용자 지정 메뉴 단추를 추가합니다.

Screenshot showing a custom menu command.

참고 항목

이 문서는 Windows용 Visual Studio에 적용됩니다. Mac용 Visual Studio의 경우 Mac용 Visual Studio 확장성 연습을 참조하세요.

필수 조건

시작하기 전에 VSIX 템플릿 및 샘플 코드를 포함하는 Visual Studio 확장 개발 워크로드를 설치했는지 확인합니다.

참고 항목

모든 버전의 Visual Studio(Community, Professional 또는 Enterprise)를 사용하여 Visual Studio 확장성 프로젝트를 만들 수 있습니다.

확장성 프로젝트 만들기

  1. 파일 메뉴에서 새로 만들기>프로젝트를 선택합니다. "vsix"를 검색하고 C# VSIX 프로젝트를 선택한 다음, 다음을 선택합니다.

  2. 프로젝트 이름으로 “HelloWorld”를 입력하고 만들기를 선택합니다.

Screenshot showing creating a new VSIX project.

이제 솔루션 탐색기에서 HelloWorld 프로젝트가 표시됩니다.

사용자 지정 명령 추가

  1. 매니페스트 파일을 선택하면 .vsixmanifest 설명, 작성자 및 버전과 같이 변경할 수 있는 옵션을 확인할 수 있습니다.

  2. 솔루션이 아닌 프로젝트를 마우스 오른쪽 단추로 클릭합니다. 바로 가기 메뉴에서 추가를 선택하고 새 항목을 선택합니다.

  3. 확장성 섹션을 선택한 다음 명령을 선택합니다.

  4. 하단에 있는 이름 필드에 Command.cs와 같은 파일 이름을 입력합니다.

Screenshot showing creating a custom command.

새 명령 파일은 솔루션 탐색기에 표시됩니다. 리소스 노드 아래에서 명령과 관련된 다른 파일을 찾을 수 있습니다. 예를 들어 이미지를 수정하려는 경우 PNG 파일이 여기에 표시됩니다.

소스 코드 수정

이 시점에서 명령 및 단추 텍스트는 자동으로 생성되며 흥미롭지 않습니다. 변경하려는 경우 VSCT 파일 및 CS 파일을 수정할 수 있습니다.

  • VSCT 파일은 명령의 이름을 바꾸고 Visual Studio 명령 시스템에서 이동하는 위치를 정의할 수 있는 위치입니다. VSCT 파일을 탐색할 때 VSCT 코드 컨트롤의 각 섹션을 설명하는 주석을 확인합니다.

  • CS 파일에서는 클릭 처리기와 같은 동작을 정의할 수 있습니다.

  1. 솔루션 탐색기 확장 VSPackage에 대한 VSCT 파일을 찾습니다. 이 경우 HelloWorldPackage.vsct라고 합니다.

  2. ButtonText 매개 변수를 Say Hello World!로 변경합니다.

      ...
      <Button guid="guidCommandPackageCmdSet" id="CommandId" priority="0x0100" type="Button">
        <Parent guid="guidCommandPackageCmdSet" id="MyMenuGroup" />
        <Icon guid="guidImages" id="bmpPic1" />
        <Strings>
            <ButtonText>Say Hello World!</ButtonText>
        </Strings>
      </Button>
      ...
    
  3. 솔루션 탐색기로 돌아가서 Command.cs 파일을 찾습니다. Execute 메서드에서 string.Format(..)에서 Hello World!message 문자열을 변경합니다.

      ...
      private void Execute(object sender, EventArgs e)
      {
        ThreadHelper.ThrowIfNotOnUIThread();
        string message = "Hello World!";
        string title = "Command";
    
        // Show a message box to prove we were here
        VsShellUtilities.ShowMessageBox(
            this.ServiceProvider,
            message,
            title,
            OLEMSGICON.OLEMSGICON_INFO,
            OLEMSGBUTTON.OLEMSGBUTTON_OK,
            OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST);
      }
      ...
    

각 파일에 대한 변경 내용을 저장해야 합니다.

실행

이제 Visual Studio 실험적 인스턴스에서 소스 코드를 실행할 수 있습니다.

1단계. F5를 눌러 디버깅 시작 명령을 실행합니다. 이 명령은 프로젝트를 빌드하고 디버거를 시작하여 실험적 인스턴스라는 Visual Studio의 새 인스턴스를 시작합니다.

2단계. 실험적 인스턴스도구 메뉴에서 Say Hello World!를 클릭합니다.

Screenshot showing that the custom command displays a message box.

새 사용자 지정 명령의 출력이 표시됩니다. 이 경우 화면 가운데에 헬로 월드! 메시지를 제공하는 대화 상자가 표시됩니다.

다음 단계

이제 Visual Studio 확장성 사용에 대한 기본 사항을 파악했으니 여기에서 더 자세히 알아볼 수 있습니다.