BuildManager 개체 소개
BuildManager 개체는 타사 개발자가 PE 파일(이식 가능한 실행 파일)을 관리하는 데 사용됩니다. PE 파일은 출력을 임시 PE로 컴파일하도록 프로젝트 시스템에 지시하는 사용자 지정 도구를 사용하여 컴파일됩니다.
BuildManager 개체와 사용자 지정 도구는 비주얼 디자이너 개발에 사용됩니다. Visual Studio의 디자이너는 파일에 대한 그래픽 사용자 인터페이스를 제공합니다. 사용자 인터페이스를 만들려면 프로젝트 항목 파일에 설명되어 있는 형식을 디자이너에서 인스턴스화해야 할 수도 있습니다. 사용자 지정 도구의 임시 PE 파일은 사용자 지정 도구의 출력인 프로젝트 항목에 설명된 형식을 캡슐화하는 어셈블리 파일입니다. 이렇게 디자이너와 사용자 지정 도구가 같이 작동하여 디자인 타임 사용자 인터페이스를 만듭니다. XSD 파일에서 클래스를 생성하는 사용자 지정 도구를 예로 들 수 있습니다. 비주얼 디자이너는 데이터 바인딩 같은 기능에 대한 디자인 타임 지원을 활성화하는 데 필요한 UI를 제공하기 위해 데이터 집합을 통해 제공되는 사항을 확인할 수 있도록 생성된 클래스를 인스턴스화해야 합니다.
사용자 지정 도구
사용자 지정 도구는 프로그램 항목 파일의 내용을 입력으로 받아 이후에 컴파일하거나 컴파일하지 않을 수도 있는 새로운 프로젝트 항목 파일을 만듭니다. 이벤트의 일반적인 순서는 다음과 같습니다.
사용자나 디자이너가 프로젝트 항목의 CustomTool 속성을 설정합니다.
프로젝트 항목 내용을 입력으로 하여 사용자 지정 도구가 실행됩니다. 사용자 지정 도구에서 입력을 인식하지 못하면 사용자 도구에서 지정한대로 사용자에게 오류가 보고됩니다. 자세한 내용은 RunCustomTool을 참조하십시오.
프로젝트 참조와 함께 사용자 지정 도구 출력이 이식 가능한 실행 파일(임시 PE)로 컴파일됩니다.
참고
GeneratesDesignTimeOutput 레지스트리 값을 1로 설정하여 사용자 지정 도구를 등록한 경우에만 출력이 임시 PE로 컴파일됩니다.
BuildManager 개체의 BuildDesignTimeOutput 메서드를 호출하면 PE에 대한 설명을 볼 수 있습니다.
BuildDesignTimeOutput에서 반환되는 임시 PE 출력은 다음과 같습니다.
<root> <Application private_binpath="full output path to temporary PE, excluding the name"/> <Assembly codebase = "filename of the temporary PE, e.g., sample.dll"" name = "name of the temporary PE == filename without the extension, e.g., "sample"" version = "always "0.0.0.0"" snapshot_id = "unique ID number" replaceable = "currently unused; always set to "True"" /> </root>
BuildManager 개체
BuildManager 개체는 임시 PE에 대한 액세스를 제공합니다. DesignTimeOutputMonikers 속성은 프로젝트에 있는 모든 PE 모니커(이름)의 배열입니다. 프로젝트 시스템에서는 프로젝트 계층 구조를 따라 PE 모니커를 할당합니다. 예를 들어, 출력 SomeData.cs를 만든 XML 디자이너 파일 SomeData.xsd가 Project1의 Folder1에 있으면 모니커는 Project1\Folder1\SomeData.cs가 됩니다. BuildDesignTimeOutput 메서드는 모니커를 매개 변수로 받아 PE에 대한 설명을 XML 문자열로 반환합니다.
PE를 생성하는 프로젝트 항목 파일이 프로젝트에서 삭제되면 BuildManagerEventsClass 개체의 DesignTimeOutputDeleted 이벤트가 발생합니다. 임시 PE를 생성하는 사용자 지정 도구(단일 파일 생성기)를 실행할 때마다 DesignTimeOutputDirty 이벤트가 발생합니다. 다음과 같은 경우에는 프로젝트의 모든 단일 파일 생성기가 실행됩니다.
업그레이드 직후 프로젝트를 연 경우
루트 네임스페이스가 변경된 경우
다음과 같은 경우에는 개별 단일 파일 생성기가 실행됩니다.
단일 파일 생성기와 함께 문서를 저장하는 경우(예: 데이터 집합)
단일 파일 생성기가 있는 문서가 열려 있고, 수정 내용을 저장하지 않았으며 사용자가 Visual Studio 내에서 다른 문서로 전환하는 경우
단일 파일 생성기가 있는 프로젝트 파일의 이름을 변경하거나 파일을 옮기는 경우
단일 파일 생성기의 출력 파일 내에 사용되는 형식의 이름을 사용자가 기호화하여 바꾼 경우. 예를 들어, 사용자가 Type' 형식에 대한 기호 이름 바꾸기를 호출하고 이 형식 ID가 데이터 집합의 출력인 dataset1.vb에 사용되는 경우 이름 바꾸기 작업이 완료된 후 단일 파일 생성기가 호출됩니다.
BuildManager 개체를 사용하여 프로그래밍하는 방법을 보려면 아래 표에서 링크를 클릭하십시오.
To |
참조 |
---|---|
임시 PE 파일에 대한 모니커를 표시하고 BuildManagerEvents 모니터링 |
제 3의 공급업체
BuildManager 개체의 기능 대부분은 ITypeResolutionService 인터페이스를 통해 액세스할 수도 있습니다. 그러나 포괄적인 디자이너를 원하는 타사 공급업체에서는 DesignTimeOutputMonikers 속성과 BuildDesignTimeOutput 메서드를 사용해야 합니다. 자세한 내용은 Visual Studio 자동화의 범위를 참조하십시오.