다음을 통해 공유


동시 설치

중첩 설치라고도 하는 동시 설치는 Windows Installer의 사용되지 않는 기능입니다. 동시 설치와 함께 설치된 애플리케이션은 고객이 올바르게 서비스하기 어렵기 때문에 결국 실패할 수 있습니다. 동시 설치를 사용하여 일반에 릴리스할 제품을 설치하지 마세요. 동시 설치는 퍼블릭 릴리스용이 아닌 애플리케이션을 설치하는 데 사용되는 경우 제어된 회사 환경에서 적용 가능성이 제한될 수 있습니다. 동시 설치 설명서는 퍼블릭 배포용이 아닌 애플리케이션과 함께 동시 설치를 사용하려는 패키지 작성자를 위해 제공됩니다.

동시 설치 작업은 현재 실행 중인 설치 중에 다른 Windows Installer 패키지를 설치합니다. CustomAction 테이블 동시 설치 작업을 작성하고 이 사용자 지정 작업을 시퀀스 테이블로 예약하여 패키지에 동시 설치가 추가됩니다. CustomAction 테이블의 대상 필드에는 동시 설치에서 사용하는 공용 속성 설정 문자열이 포함되어 있습니다. CustomAction 테이블의 원본 필드는 동시 패키지를 식별합니다. 동시 설치 작업은 현재 애플리케이션의 설치 패키지에서 설치한 애플리케이션만 다시 설치하거나 제거할 수 있습니다.

동시 설치 작업의 형식은 CustomAction 테이블의 형식 필드에 지정됩니다. 사용자 지정 작업 유형에 따라 동시 애플리케이션에 대한 패키지는 기본 패키지의 하위 저장소, 속성에 지정된 위치의 파일 또는 사용자의 컴퓨터에서 보급된 애플리케이션으로 상주할 수 있습니다. 다음 유형의 사용자 지정 작업은 동시 설치를 수행합니다.

사용자 지정 작업 유형 묘사
사용자 지정 작업 유형 7 설치 패키지에 있는 제품의 동시 설치입니다.
사용자 지정 작업 유형 23 현재 원본 트리 내에서 설치 관리자 패키지를 동시에 설치합니다.
사용자 지정 작업 유형 39 보급된 설치 관리자 패키지의 동시 설치

 

동시 설치는 주 설치와 동일한 사용자 인터페이스 및 로깅 설정을 공유합니다.

InstallInitialize 작업 주 설치 작업 순서의 InstallFinalize 작업 사이에 동시 설치 작업을 배치해야 합니다. 주 설치를 롤백하면 설치 관리자도 동시 설치를 롤백합니다. 설치 관리자가 동시 및 주 설치의 롤백 정보를 결합하기 때문에 지연된 실행 동시 설치 작업과 함께 사용할 필요가 없습니다. 롤백 설치 시 모든 변경 내용이 취소됩니다.

동시 설치 작업에 대한 반환 값은 다른 사용자 지정 작업과 동일합니다. 사용자 지정 작업 반환 값 참조하세요.

시스템의 자동 다시 시작을 지정하거나 사용자에게 다시 시작을 요청하는 표준 또는 사용자 지정 작업도 동시 설치 내에서 다시 시작 또는 요청을 수행할 수 있습니다.

설치 관리자가 동시 설치를 시작하면 동시 설치가 완료되고 주 설치를 계속하기 전에 다른 모든 설치가 잠깁니다. 설치 관리자는 동시 설치만 동기 사용자 지정 작업으로 실행할 수 있습니다. 동기 및 비동기 사용자 지정 작업 참조하세요. 사용자 지정 작업 반환 처리 옵션 설명된 옵션 플래그는 없음(+0) 또는 msidbCustomActionTypeContinue (+64) 설정해야 합니다.

동시 설치 작업은 애플리케이션을 설치하여 로컬로 실행하거나, 원본에서 실행하거나, 다시 설치하거나, 일반 설치에 MsiInstallProduct 사용하는 경우와 같은 방식으로 제거할 수 있습니다. 설치 유형을 지정하려면 ADDLOCAL, ADDSOURCE, REINSTALL또는 REMOVE 속성을 동시 설치 작업에 전달합니다.

동시 설치 작업은 쌍으로 작성할 수 있습니다. 한 작업은 설치에 사용되고 다른 작업은 동시 설치를 제거하는 데 사용됩니다. 사용자 지정 작업 유형 7 또는 사용자 지정 작업 유형 23 일반적으로 설치하는 데 사용됩니다. 사용자 지정 작업 유형 39 일반적으로 부모 제품을 제거할 때 동시 설치를 제거하는 데 사용됩니다. CustomAction 테이블 제거 사용자 지정 작업에 대한 레코드는 원본 필드에 제품 코드 GUID를, 대상 필드에는 "REMOVE=ALL"을 포함할 수 있습니다. 두 사용자 지정 작업은 상호 배타적인 조건을 사용하여 작업 시퀀스 테이블에서 작성해야 합니다. 예를 들어 제품을 설치하는 사용자 지정 작업은 조건 필드에 "설치되지 않음"을 가질 수 있으며, 동시 설치를 제거하는 사용자 지정 작업은 조건 필드에 REMOVE="ALL"을 포함할 수 있습니다.

패키지의 비용을 쿼리하는 방법은 없습니다. 따라서 동시 설치 비용이 발생합니다. 동시 설치와 관련된 구성 요소의 폴더 및 최악의 경우 비용을 나타내려면 ReserveCost 테이블 행을 추가해야 합니다.

동시 설치 작업에서 사용할 수 있는 유일한 사용자 지정 작업 반환 처리 옵션 없음(+0) 또는 msidbCustomActionTypeContinue(+64)입니다.

부모 설치는 자체 패키지를 동시 설치 작업으로 호출할 수 없습니다.

컴퓨터별 설치에서 사용자별 동시 설치를 실행하려고 하면 설치 관리자는 기본적으로 부모 설치를 사용자별로 등록합니다. 이로 인해 설치 관리자가 실제로 사용자별로 등록된 경우 컴퓨터당 애플리케이션을 제거하려고 하기 때문에 설치 관리자가 애플리케이션을 잘못 제거하게 될 수 있습니다. 동시 설치 상태가 부모 설치 상태를 추적하도록 하려면 CustomAction 테이블대상 열에 ALLUSERS="[ALLUSERS]"를 입력합니다. 이 경우 부모가 컴퓨터당인 경우 컴퓨터당 동시 설치가 수행되고, 부모가 사용자 단위인 경우 동시 설치가 사용자 단위입니다.

개발자는 동시 설치를 작성할 때 다음과 같은 경고를 확인해야 합니다.

  • 동시 설치는 구성 요소를 공유할 수 없습니다.
  • 관리자 설치에는 동시 설치도 포함될 수 없습니다.
  • 패치 및 업그레이드는 동시 설치에서 작동하지 않을 수 있습니다.
  • 설치 관리자가 동시 설치 비용이 제대로 들지 않을 수 있습니다.
  • 통합 ProgressBars는 동시 설치에 사용할 수 없습니다.
  • 보급할 리소스는 동시 설치로 설치할 수 없습니다.
  • 또한 애플리케이션의 동시 설치를 수행하는 패키지는 부모 제품을 제거할 때 동시 애플리케이션을 제거해야 합니다.

패키지가 동시 설치로 설치되지 않도록 하려면 다음 조건문 중 하나를 LaunchCondition 테이블에 추가합니다. 이렇게 하면 다른 설치에서 실행하는 동시 설치 작업으로 패키지가 설치되지 않습니다. 이렇게 하면 RemoveExistingProducts 작업에 의해 패키지가 제거되지 않습니다. ParentOriginalDatabase속성 및 ParentProductCode 속성도참조하세요.

"Not ParentProductCode"
"Not ParentOriginalDatabase"