출력에 대한 프로젝트 구성
모든 구성은 실행 파일 또는 리소스 파일과 같은 출력 항목을 생성하는 빌드 프로세스 집합을 지원할 수 있습니다. 이러한 출력 항목은 사용자에게 비공개이며 실행 파일(.exe, .dll, .lib) 및 소스 파일(.idl, .h 파일)과 같은 관련 출력 형식을 연결하는 그룹에 배치할 수 있습니다.
출력 항목은 IVsOutput2 메서드를 통해 사용할 수 있게 설정하고 IVsEnumOutputs 메서드로 열거할 수 있습니다. 출력 항목을 그룹화하려면 프로젝트에서도 IVsOutputGroup 인터페이스를 구현해야 합니다.
IVsOutputGroup
을 구현하여 개발된 구문을 사용하면 프로젝트가 사용량에 따라 출력을 그룹화할 수 있습니다. 예를 들어 DLL은 해당 PDB(프로그램 데이터베이스)로 그룹화될 수 있습니다.
참고 항목
PDB 파일에는 디버깅 정보가 포함되어 있으며 .dll 또는 .exe를 빌드할 때 '디버그 정보 생성' 옵션이 지정되면 생성됩니다. .pdb 파일은 일반적으로 디버그 프로젝트 구성에만 생성됩니다.
그룹에 포함된 출력 수가 구성마다 다를 수 있지만 프로젝트는 지원하는 각 구성에 대해 동일한 수의 그룹을 반환해야 합니다. 예를 들어 프로젝트 Matt의 DLL에는 디버그 구성에 mattd.dll 및 mattd.pdb가 포함될 수 있지만 Retail 구성에는 matt.dll만 포함할 수 있습니다.
또한 그룹은 프로젝트 내의 구성에서 구성에 이르기까지 정식 이름, 표시 이름, 그룹 정보와 같은 식별자 정보를 갖습니다. 이러한 일관성을 통해 구성이 변경되더라도 배포 및 패키징이 계속 작동할 수 있습니다.
또한 그룹에는 패키징 바로 가기가 의미 있는 항목을 가리키도록 하는 키 출력이 있을 수도 있습니다. 지정된 구성에서 모든 그룹이 비어 있을 수 있으므로 그룹 크기에 대한 가정은 하지 않아야 합니다. 모든 구성에서 각 그룹의 크기(출력 수)는 동일한 구성에 있는 다른 그룹의 크기와 다를 수 있습니다. 다른 구성에서 동일한 그룹의 크기와 다를 수도 있습니다.
출력 그룹
기본적으로 IVsProjectCfg 인터페이스는 관리 개체를 빌드, 배포, 디버그할 수 있는 액세스를 제공하고 프로젝트에 출력을 자유롭게 그룹화할 수 있도록 사용해야 합니다. 이 인터페이스 사용에 대한 자세한 내용은 프로젝트 구성 개체를 참조하세요.
이전 다이어그램에서 Group Built에는 구성(bD.exe 또는 b.exe) 전반에 걸쳐 키 출력이 있으므로 사용자는 Built에 대한 바로 가기를 만들고 배포된 구성에 관계없이 바로 가기가 작동한다는 것을 알 수 있습니다. Group Source에는 키 출력이 없으므로 사용자가 바로 가기를 만들 수 없습니다. Debug Group Built에 키 출력이 있지만 Retail Group Built에 키 출력이 없는 경우 잘못된 구현이 됩니다. 그런 다음 모든 구성에 출력이 없는 그룹이 있고 결과적으로 키 파일이 없는 경우 출력이 포함된 해당 그룹의 다른 구성에는 키 파일이 포함될 수 없습니다. 설치 관리자 편집기는 정식 이름과 그룹의 표시 이름 및 키 파일의 존재가 구성에 따라 변경되지 않는다고 가정합니다.
프로젝트에 패키지 또는 배포를 원하지 않는 IVsOutputGroup
이 있는 경우 해당 출력을 그룹에 배치하지 않는 것으로 충분합니다. 그룹화에 관계없이 구성의 모든 출력을 반환하는 EnumOutputs 메서드를 구현하여 출력을 정상적으로 열거할 수 있습니다.
자세한 내용은 사용자 지정 프로젝트 샘플의 프로젝트용 MPF에서 IVsOutputGroup
의 구현을 참조하세요.