설치 구성 요소 소개
업데이트: 2007년 11월
Microsoft Visual Studio 6.0에서는 응용 프로그램을 설치하려면 대개 응용 프로그램과 관련된 모든 런타임 파일과 지원 파일을 개발 컴퓨터에서 대상 컴퓨터로 복사해야 했습니다. Visual Studio 2005에서는 응용 프로그램이 전통적인 프로그램 파일뿐 아니라 대상 컴퓨터에 만들어야 하는 메시지 큐, 이벤트 로그, 성능 카운터, 데이터베이스 및 구성 파일 같은 관련 리소스로 구성됩니다. 설치 구성 요소를 사용하면 응용 프로그램을 설치할 때 응용 프로그램에서 리소스를 생성하고 응용 프로그램을 제거할 때 리소스를 제거하도록 구성할 수 있습니다.
예를 들어, 사용자 지정 성능 카운터에 쓰는 응용 프로그램을 배포하는 경우가 있습니다. 카운터는 응용 프로그램을 배포할 때 설치해야 합니다. 설치 구성 요소를 사용하면 필요한 성능 카운터를 응용 프로그램을 설치할 때 원격 컴퓨터에 자동으로 만들고 구성하도록 응용 프로그램을 설정할 수 있습니다.
설치 관리자 클래스 및 미리 정의된 설치 구성 요소
설치 구성 요소에는 프로젝트에 추가할 수 있는 설치 관리자 클래스와 구성 요소와 연결되는 미리 정의된 설치 구성 요소 등 두 종류가 있습니다.
설치하는 동안 대상 컴퓨터에 데이터베이스를 만드는 등의 작업을 수행하도록 응용 프로그램에 설치 관리자 클래스를 추가할 수 있습니다. 배포 프로젝트에서는 프로젝트에서 가져온 컴파일된 설치 관리자 클래스가 설치 작업의 마지막에 실행되는 사용자 지정 동작으로서 추가됩니다. 또한, 배포 프로젝트에서는 설치하는 동안 CustomActionData 속성을 통해 사용자 입력을 캡처하여 설치 관리자 클래스에 전달할 수 있습니다. 예를 들어, 사용자에게 데이터베이스의 위치를 선택하게 할 수 있습니다. 배포 프로젝트에서의 설치 구성 요소 사용에 대한 자세한 내용은 연습: 설치할 때 사용자 지정 작업을 사용하여 데이터베이스 만들기를 참조하십시오.
미리 정의된 설치 구성 요소는 이를 필요로 하는 구성 요소와 일대일로 연결됩니다. 예를 들어, 프로젝트에 MessageQueue 구성 요소의 인스턴스가 있고, 이로 인해 배포되는 응용 프로그램에서 큐를 설치하고 구성해야 하는 경우, 작업을 처리할 설치 구성 요소를 만듭니다. 그런 다음 EventLog 구성 요소의 인스턴스를 프로젝트에 추가하고 이벤트 로그를 사용할 수 있도록 구성하려는 경우에는 이 작업을 수행할 두 번째 설치 구성 요소를 추가해야 합니다.
미리 정의된 다섯 가지 설치 구성 요소를 프로젝트에서 사용할 수 있습니다.
EventLogInstaller 클래스를 기반으로 하는 EventLog 설치 관리자를 사용하면 응용 프로그램 실행에 필요한 사용자 지정 이벤트 로그를 설치하고 구성할 수 있습니다. 자세한 내용은 EventLog 구성 요소 소개를 참조하십시오.
MessageQueueInstaller 클래스를 기반으로 하는 MessageQueue 설치 관리자를 사용하면 응용 프로그램 실행에 필요한 큐를 설치하고 구성할 수 있습니다. 자세한 내용은 메시지 구성 요소 사용을 참조하십시오.
PerformanceCounterInstaller 클래스를 기반으로 하는 PerformanceCounter 설치 관리자를 사용하면 응용 프로그램 실행에 필요한 사용자 지정 성능 카운터를 설치하고 구성할 수 있습니다. 자세한 내용은 성능 임계값 모니터링을 참조하십시오.
ServiceInstaller 및 ServiceProcessInstaller 클래스를 함께 사용하여 서비스 응용 프로그램을 설치할 수 있습니다. 자세한 내용은 Windows 서비스 모니터링을 참조하십시오.
프로젝트의 모든 설치 구성 요소는 RunInstallerAttribute로 표시된 클래스 안에 저장됩니다. 미리 정의된 설치 구성 요소를 추가하면 이 특성을 포함하는 Installer1 클래스가 기본적으로 프로젝트에 추가됩니다. 새 항목 추가 대화 상자를 통해 추가되는 설치 관리자 클래스 역시 이 특성을 포함하며 기본적으로 Installer1이라는 이름이 지정됩니다. 설치하는 동안 수행되는 작업에 대한 자세한 내용은 설치 프로세스를 참조하십시오.