다음을 통해 공유


프로젝트 모델의 요소

모든 Visual Studio 프로젝트의 인터페이스 및 구현은 기본 구조인 프로젝트 형식에 대한 프로젝트 모델을 공유합니다. 개발 중인 VSPackage인 프로젝트 모델에서 디자인 결정을 준수하고 IDE에서 제공하는 전역 기능과 함께 작동하는 개체를 만듭니다. 예를 들어 프로젝트 항목이 유지되는 방식을 제어하지만 파일을 유지해야 한다는 알림을 제어하지는 않습니다. 사용자가 열려 있는 프로젝트 항목에 포커스를 두고 Visual Studio 메뉴 모음의 파일 메뉴에서 저장을 선택하면 프로젝트 형식 코드가 IDE에서 명령을 가로채 파일을 유지한 다음, 파일이 더 이상 변경되지 않는다는 알림을 IDE에 다시 보내야 합니다.

VSPackage는 IDE 인터페이스에 대한 액세스를 제공하는 서비스를 통해 IDE와 상호 작용합니다. 예를 들어 특정 서비스를 통해 명령을 모니터링하고 라우팅하며 프로젝트에서 선택한 항목에 대한 컨텍스트 정보를 제공합니다. VSPackage에 필요한 모든 전역 IDE 기능은 서비스에서 제공됩니다. 자세한 내용은 방법: 서비스 가져오기를 참조하세요.

기타 구현 고려 사항:

  • 단일 프로젝트 모델에는 둘 이상의 프로젝트 형식이 포함될 수 있습니다.

  • 프로젝트 형식 및 관련 프로젝트 팩터리는 GUID에 독립적으로 등록됩니다.

  • 사용자가 Visual Studio UI를 통해 새 프로젝트를 만들 때 새 프로젝트 파일을 초기화하려면 각 프로젝트에 템플릿 파일 또는 마법사가 있어야 합니다. 예를 들어 Visual C++ 템플릿은 결과적으로 .vcproj 파일이 되는 항목을 초기화합니다.

    다음 그림에서는 일반적인 프로젝트 구현을 구성하는 기본 인터페이스, 서비스 및 개체를 보여 줍니다. 애플리케이션 도우미 HierUtil7을 사용하여 기본 개체 및 기타 프로그래밍 상용구를 만들 수 있습니다. HierUtil7 애플리케이션 도우미에 대한 자세한 내용은 HierUtil7 프로젝트 클래스를 사용하여 프로젝트 형식 구현(C++)을 참조하세요.

    Visual Studio 프로젝트 모델 그래픽

    프로젝트 모델

    이전 다이어그램에 나열된 인터페이스 및 서비스 및 다이어그램에 포함되지 않은 기타 선택적 인터페이스에 대한 자세한 내용은 프로젝트 모델 핵심 구성 요소를 참조하세요.

    프로젝트는 명령을 지원할 수 있으므로 명령 컨텍스트 GUID를 통해 명령 라우팅에 참여할 IOleCommandTarget 인터페이스를 구현해야 합니다.