다음을 통해 공유


구성 옵션 개요

Visual Studio의 프로젝트는 빌드, 디버그, 실행 및/또는 배포할 수 있는 여러 구성을 지원할 수 있습니다. 구성은 명명된 속성 집합(일반적으로 컴파일러 스위치 및 파일 위치)으로 설명된 빌드 형식입니다. 기본적으로 새 솔루션에는 디버그 및 릴리스의 두 가지 구성이 포함되어 있습니다. 이러한 구성은 기본 설정을 사용하여 적용하거나 특정 솔루션 및/또는 프로젝트 요구 사항을 충족하도록 수정할 수 있습니다. 일부 패키지는 ActiveX 편집기 또는 현재 위치 구성 요소의 두 가지 방법으로 빌드할 수 있습니다. 그러나 프로젝트는 여러 구성을 지원할 필요가 없습니다. 사용할 수 있는 구성이 하나만 있는 경우 해당 구성은 모든 솔루션 구성에 매핑됩니다.

구성은 일반적으로 구성 이름(예: 디버그 또는 릴리스) 및 플랫폼 설정의 두 부분으로 구성됩니다. 구성의 플랫폼 이름은 API 집합 또는 운영 체제 플랫폼과 같이 구성이 대상으로 하는 환경을 식별합니다. Visual Studio 사용자는 플랫폼을 만들 수 없습니다. 프로젝트 VSPackage에서 허용하는 선택 항목 중에서 선택해야 합니다. 사용자가 VSPackage를 설치할 때 패키지를 개발하는 동안 만든 배달 플랫폼은 패키지 작성자가 설정한 조건에 따라 원하는 모든 플랫폼 이름을 표시할 수 있습니다. 그러면 사용자는 속성 페이지가 인스턴스화될 때 VSPackage를 통해 사용할 수 있는 플랫폼 목록에서 선택할 수 있습니다.

모든 프로젝트가 플랫폼 개념을 지원하지 않으므로 플랫폼 이름은 선택 사항입니다. 구성에 플랫폼 이름이 없는 경우 문자열 N/A 가 UI에 표시됩니다.

각 솔루션에는 고유한 구성 집합이 있으며, 그 중 하나만 한 번에 활성화할 수 있습니다. 솔루션 구성은 각 프로젝트에서 하나 이상의 구성만으로 이루어진 집합입니다. "더 이상" 규정은 솔루션 구성에서 프로젝트를 제외하는 옵션 때문입니다. 사용자는 고유한 사용자 지정 솔루션 구성을 만들 수 있습니다.

다음 표에서는 프로젝트에 대한 일반적인 구성 설정을 보여 줍니다. 행은 구성 이름으로, 열은 플랫폼 이름으로 레이블이 지정됩니다.

구성 이름 플랫폼: Win32 플랫폼: Win64
디버그 <Win32 설정 디버그> <Win64 설정 디버그>
릴리스 <Win32 설정 해제> <Win64 설정 해제>
MyConfig N/A <MyConfig Win64 설정>

비고

대상으로 지정하는 프로젝트가 Win32를 지원하지 않는 한 Win32 플랫폼을 제외하는 MyConfig 솔루션 구성을 만들 수 없습니다.

솔루션에 대한 활성 구성을 변경하면 해당 솔루션에서 빌드, 실행, 디버그 또는 배포된 프로젝트 구성 집합이 선택됩니다. 예를 들어 활성 솔루션 구성을 릴리스 에서 디버그로 변경하는 경우 해당 솔루션 내의 모든 프로젝트는 솔루션의 디버그 구성에 표시된 프로젝트 구성을 사용하여 자동으로 빌드됩니다. 사용자가 환경의 Configuration Manager를 수동으로 변경하지 않는 한 프로젝트의 구성은 디버그 라고도 합니다.

각 프로젝트에 대해 저장된 솔루션 구성 속성에는 프로젝트 이름, 프로젝트 구성 이름, 빌드 또는 배포 여부를 나타내는 플래그 및 플랫폼 이름이 포함됩니다. 자세한 내용은 솔루션 구성을 참조하세요.

사용자는 계층 구조에서 솔루션을 선택하고(솔루션 탐색기) 속성 페이지를 열어 솔루션 구성 매개 변수를 보고 설정할 수 있습니다. 마찬가지로 솔루션 탐색기에서 프로젝트를 선택하고 해당 프로젝트의 속성 페이지를 열어 프로젝트 구성 매개 변수를 보고 설정할 수 있습니다.

사용자는 릴리스 구성 설정을 사용하여 하나의 프로젝트를 빌드하고 필요한 경우 디버그 구성 설정을 사용하여 나머지를 모두 빌드할 수도 있습니다. 자세한 내용은 빌드를 위한 프로젝트 구성을 참조하세요.

다음 다이어그램에서는 솔루션 및 프로젝트 구성을 지원하는 인터페이스를 구현하는 방법을 보여 줍니다.

구성 인터페이스 그래픽

구성 인터페이스

이전 다이어그램과 관련된 몇 가지 참고 사항:

  • IDispatch 는 구성 개체에서 선택 사항으로 표시됩니다. 특히 찾아보기 개체에 구성 인터페이스를 두는 것은 선택 사항입니다.

  • IVsDebuggableProjectCfg 는 구성 개체에서 선택 사항으로 표시되지만 디버깅 지원에 필요합니다.

  • IVsProjectCfg2 는 구성 개체에서 선택 사항으로 표시되지만 출력 그룹화 지원에 필요합니다.

  • Config Provider 개체는 선택적 개체로 표시되지만 이 개체를 구현할 위치는 옵션입니다. 프로젝트 개체 또는 별도의 개체에서 개체를 구현할 수 있습니다.

  • IVsCfgProvider2 는 플랫폼 지원 및 구성 편집에 필요합니다. IVsCfgProvider 은 해당 기능을 구현하지 않으면 충분합니다.

  • 다이어그램에 개별 개체로 표시된 이러한 개체 중 일부는 특정 디자인 요구 사항에 따라 실용적인 동일한 클래스로 결합할 수 있습니다. 그러나 이 섹션의 다른 항목에서는 다이어그램에 제시된 시나리오에 따라 해당 개체와 연결된 개체 및 인터페이스에 대해 설명합니다.

  • 특정 개체는 별도로 구현됩니다. 예를 들어 프로젝트 및 솔루션 빌드는 빌드에 대한 구성을 설명하는 개체와 별도로 빌드를 관리하는 별도의 스레드와 개체에서 발생합니다.

    이전 다이어그램의 구성 개체 인터페이스 및 구성 공급자 개체 인터페이스에 대한 자세한 내용은 Project 구성 개체를 참조하세요. 또한 빌드를 위한 프로젝트 구성 은 구성 작성기 및 빌드 종속성 개체 인터페이스에 대한 자세한 정보를 제공하며, 배포를 관리하기 위한 Project 구성 에서는 구성 배포자 및 배포 종속성 개체에 연결된 인터페이스에 대해 자세히 설명합니다. 마지막으로 출력에 대한 Project 구성은 출력 그룹 및 출력 개체 인터페이스와 속성 페이지를 사용하여 구성 종속 속성을 보고 설정하는 방법을 설명합니다.