출력에 대한 프로젝트 구성

모든 구성은 실행 파일 또는 리소스 파일과 같은 출력 항목을 생성하는 빌드 프로세스 집합을 지원할 수 있습니다. 이러한 출력 항목은 사용자에게 비공개이며 실행 파일(.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의 구현을 참조하세요.

참고 항목