다음을 통해 공유


사용자 지정 작업 시퀀싱

사용자 지정 작업은 표준 작업과 동일한 방식으로 시퀀스 테이블로 예약됩니다.

시퀀스 테이블에서 사용자 지정 작업을 예약하려면

  1. 시퀀스 테이블의 작업 열에 사용자 지정 작업 이름(CustomAction의 기본 키)을 입력합니다.
  2. 시퀀스 테이블의 시퀀스 열에 테이블의 다른 작업과 비교한 사용자 지정 작업의 시퀀스를 입력합니다. 시퀀스 테이블에 대한 자세한 내용은 시퀀스 테이블 사용을 참조하세요.
  3. 작업을 조건부로 건너뛰려면 시퀀스 테이블의 조건 열에 조건식을 입력합니다. 식이 FALSE로 평가되면 설치 관리자가 이 작업을 건너뜁니다.

표준 작업의 경우와 마찬가지로 InstallUISequence 또는 AdminUISequence에서 예약된 사용자 지정 작업은 내부 사용자 인터페이스가 전체 수준으로 설정된 경우에만 실행됩니다. UI 수준은 MsiSetInternalUI 함수를 사용하여 설정됩니다.

InstallExecuteSequence, AdminExecuteSequence 또는 AdvtExecuteSequence 테이블에서 예약된 표준 및 사용자 지정 작업은 시스템을 변경하지 않습니다. 대신 설치 관리자는 설치 서비스 중에 후속 실행을 위해 스크립트의 실행 레코드를 큐에 대기시킵니다. 설치 서비스가 없는 경우 이러한 테이블에서 예약된 작업은 UI 시퀀스와 동일한 컨텍스트에서 실행됩니다.

설치 관리자 서버가 등록되지 않은 경우 클라이언트 쪽에서 사용자 지정 작업이 실행됩니다. 서버가 등록되어 있고 전체 UI 모드를 사용하는 경우 사용자 지정 작업은 서버 쪽에서 실행됩니다.

서버에서 전체 UI를 사용하는 경우 InstallValidate 작업 이전의 초기 작업이 클라이언트에서 실행되어 전체 상호 작용을 허용합니다. 그러면 실행은 해당 작업을 반복하고 스크립트 실행 작업을 실행하는 서버로 전환됩니다. 그런 다음 최종 작업을 위해 클라이언트로 돌아갑니다.

상위 기능을 없음으로 설정하여 제품이 제거된 경우 InstallValidate 작업 이후까지 REMOVE 속성이 ALL과 같지 않을 수 있습니다. 즉, REMOVE=ALL에 종속된 모든 사용자 지정 작업은 InstallValidate 작업 후에 시퀀스되어야 합니다. 사용자 지정 작업은 REMOVE를 확인하여 제품이 완전히 제거되도록 설정되었는지 여부를 확인할 수 있습니다.

사용자 지정 작업 유형 17(DLL), 사용자 지정 작업 유형 18(EXE), 사용자 지정 작업 유형 21(JScript) 및 사용자 지정 작업 유형 22(VBScript)와 같이 설치된 파일을 원본으로 참조하는 사용자 지정 작업은 다음 시퀀싱 제한을 준수해야 합니다.

  • 참조된 파일의 경로를 확인할 수 있도록 CostFinalize 작업 후에 사용자 지정 작업을 시퀀스해야 합니다.
  • 원본 파일이 컴퓨터에 아직 설치되어 있지 않은 경우 지연된(스크립트 내) 사용자 지정 작업은 InstallFiles 후에 순서를 지정해야 합니다.
  • 원본 파일이 컴퓨터에 아직 설치되어 있지 않은 경우 지연되지 않은 사용자 지정 작업은 InstallInitialize 작업 후에 순서를 지정해야 합니다.

Windows Installer 패키지를 변경하거나 업데이트하는 사용자 지정 작업에는 다음과 같은 시퀀싱 제한이 적용됩니다.

  • 사용자 지정 작업이 테이블에 행을 추가하는 등 패키지를 변경하는 경우 작업은 InstallInitialize 작업 전에 시퀀스되어야 합니다.
  • 사용자 지정 작업이 비용에 영향을 주는 변경 내용을 적용하는 경우 CostInitialize 작업 전에 순서를 지정해야 합니다.
  • 사용자 지정 작업이 기능 또는 구성 요소의 설치 상태를 변경하는 경우 InstallValidate 작업 전에 시퀀스되어야 합니다.