다음을 통해 공유


사용자 지정 작업 시퀀싱

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

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

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

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

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

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

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

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

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

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

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

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