속성 페이지
사용자는 속성 페이지를 사용하여 프로젝트 구성 종속 및 독립 속성을 보고 변경할 수 있습니다. 속성 페이지 단추는 속성 창 또는 선택한 개체의 속성 페이지 보기를 제공하는 개체에 대한 솔루션 탐색기 도구 모음에서 사용할 수 있습니다. 속성 페이지는 환경에서 생성되며 솔루션 및 프로젝트에 사용할 수 있습니다. 그러나 구성 종속 속성을 사용하는 프로젝트 항목에도 사용할 수 있습니다. 이 접근 권한 값은 프로젝트 내의 파일을 제대로 빌드하기 위해 다른 컴파일러 스위치 설정이 필요한 경우에 사용할 수 있습니다.
속성 페이지 사용
속성 페이지가 이미 표시되어 있고 선택이 변경되는 경우(예: 솔루션에서 프로젝트로) 페이지에 표시되는 정보가 변경되어 새 선택에 대한 속성이 표시됩니다. 속성 페이지를 지원하는 개체에 속성이 없으면 속성 페이지가 비어 있습니다.
여러 개체를 선택하면 속성 페이지에 선택한 모든 항목에 대한 속성의 교집합이 표시됩니다. 선택한 항목에 구성 종속 속성이 포함되어 있지 않고 솔루션 탐색기 도구 모음의 속성 페이지 단추를 클릭하면 포커스가 속성 창으로 변경됩니다. 속성 창 및 선택과 관련한 자세한 정보는 속성 확장을 참조하세요.
속성이 여러 개체에 대해 표시되고 속성 페이지에서 값을 변경하는 경우, 처음에 값이 서로 다르고 개별 개체의 속성이 표시될 때 페이지가 비어 있더라도 개체의 모든 값은 새 값으로 설정됩니다.
Visual Studio에서 사용할 수 있는 두 가지 일반적인 유형의 ProjectProperty Pages 대화 상자가 있습니다. 첫 번째는 Visual Basic 프로젝트 등에 대해 다음 스크린샷과 같이 필드 형식을 사용하여 속성 페이지가 표시됩니다. 이 섹션의 뒷부분에 표시된 두 번째는 속성 페이지가 속성 창에 있는 것과 유사한 속성 그리드를 호스팅합니다.
필드 형식 및 트리 구조가 있는 프로젝트 속성 페이지 대화 상자
속성 페이지 대화 상자의 트리 구조는 IVsHierarchy를 사용하여 빌드되지 않습니다. 환경은 ISpecifyPropertyPages 및 IVsPropertyPage 인터페이스가 전달해 준 수준 이름에 따라 빌드됩니다.
Visual Studio 속성 페이지에서 사용할 수 있는 최상위 범주는 두 개뿐입니다.
공통 속성은 선택한 개체 또는 개체에 대한 구성 독립적 정보를 표시합니다. 따라서 공통 속성 하위 범주 중 하나를 선택하면 대화 상자 위쪽의 구성, 플랫폼 및 구성 관리자 옵션을 사용할 수 없습니다.
구성 속성은 솔루션 또는 프로젝트에 대한 디버깅, 최적화 및 빌드 매개 변수와 관련된 구성 종속 정보를 포함합니다.
최상위 범주를 추가로 만들 수는 없지만
IVsPropertyPage
구현에서 하나 또는 다른 범주를 표시하지 않도록 선택할 수 있습니다. 예를 들어 개체에 대해 표시할 구성 독립적 속성이 없는 경우 공통 속성 범주를 표시하지 않도록 선택할 수 있습니다. 구성 개체(IVsCfg
,IVsProjectCfg
및 관련 인터페이스를 구현하는 개체)에서ISpecifyPropertyPages
를 구현할 때 항목의 탐색 개체 및 구성 속성에서ISpecifyPropertyPages
가 구현되는 경우 공통 속성을 표시합니다.최상위 범주 아래에 표시되는 각 범주는 별도의 속성 페이지를 나타냅니다. 대화 상자에서 사용할 수 있는 범주 및 하위 범주 항목은
ISpecifyPropertyPages
및IVsPropertyPage
구현에 따라 결정됩니다.IDispatch
속성 페이지에 표시할 속성이 있는 선택 컨테이너에서 항목에 대한 개체는 클래스 ID 목록을 열거하기 위해ISpecifyPropertyPages
를 구현합니다. 클래스 ID는ISpecifyPropertyPages
에 변수로 전달되며 속성 페이지를 인스턴스화하는 데 사용됩니다. 클래스 ID 목록도IVsPropertyPage
에 전달되어 대화 상자 왼쪽에 트리 구조를 만듭니다. 그런 다음, 속성 페이지가ISpecifyPropertyPages
를 구현하고 각 페이지에 대한 정보를 채우는IDispatch
개체에 정보를 다시 전달합니다.찾아보기 개체의 속성은 선택 컨테이너의 각 개체에 대해
IDispatch
를 사용하여 검색됩니다.VSPackage에서
Help::DisplayTopicFromF1Keyword
를 구현하면 도움말 단추의 기능이 제공됩니다.자세한 내용은 MSDN 라이브러리를 참조
IDispatch
ISpecifyPropertyPages
하세요.샘플에 표시되는 두 번째 유형의 속성 페이지는 다음 스크린샷과 같이 속성 그리드의 형태를 호스팅합니다.
속성 표가 있는 속성 페이지 대화 상자
IVSMDPropertyBrowser
및IVSMDPropertyGrid
인터페이스(vsmanaged.h에서 선언됨)는 대화 상자 또는 창 내에서 속성 표를 만들고 채우는 데 사용됩니다.프로젝트의 아키텍처가 이전 버전의 Visual Studio에서 상당히 변경되었습니다. 특히 어떤 프로젝트가 활성 상태인지에 대한 개념이 변경되었습니다. Visual Studio에는 활성 프로젝트의 개념이 없습니다. 이전 개발 환경에서 활성 프로젝트는 컨텍스트에 관계없이 명령을 빌드하고 배포하는 프로젝트였습니다. 이제 솔루션은 빌드 및 배포 명령이 어떤 프로젝트에 적용되는지 제어하고 중재합니다.
이전에는 활성 프로젝트였던 것이 이제 세 가지 방법 중 하나로 캡처됩니다.
시작 프로젝트
사용자가 F5 키를 누르거나 빌드 메뉴에서 실행을 선택할 때 시작될 솔루션의 속성 페이지에서 프로젝트 또는 프로젝트를 지정할 수 있습니다. 이름이 굵은 글꼴로 솔루션 탐색기 표시된다는 점에서 이전 활성 프로젝트와 비슷한 방식으로 작동합니다.
DTE.Solution.SolutionBuild.StartupProjects
를 호출하여 자동화 모델에서 시작 프로젝트를 속성으로 검색할 수 있습니다. VSPackage에서 get_StartupProject 또는 get_StartupProject 메서드를 호출합니다.IVsSolutionBuildManager
는 SID_SVsSolutionBuildManager에서QueryService
가 서비스로 사용할 수 있습니다. 자세한 내용은 프로젝트 구성 개체 및 솔루션 구성을 참조하세요.활성 솔루션 빌드 구성
Visual Studio에는
DTE.Solution.SolutionBuild.ActiveConfiguration
구현을 통해 자동화 모델에서 사용할 수 있는 활성 솔루션 구성이 있습니다. 솔루션 구성은 솔루션의 각 프로젝트에 대해 하나의 프로젝트 구성을 포함하는 컬렉션입니다(각 프로젝트는 서로 다른 이름의 여러 플랫폼에서 여러 구성을 가질 수 있음). 솔루션의 속성 페이지와 관련된 자세한 정보는 솔루션 구성을 참조하세요.현재 선택한 프로젝트
선택한 프로젝트 계층 및 하나 이상의 프로젝트 항목을 검색하는 GetCurrentSelection 메서드를 구현합니다. DTE에서
SelectedItems.SelectedItem.Project
및SelectedItems.SelectedItem.ProjectItem
메서드를 사용합니다. 핵심 Visual Studio 문서의 제목 아래에 샘플 코드가 있습니다.