사용자 지정 작업 실행 예약 옵션

사용자 지정 작업은 UI 및 실행 시퀀스 테이블 모두에서 예약할 수 있고 서비스 또는 클라이언트 프로세스에서 실행할 수 있으므로 사용자 지정 작업은 잠재적으로 여러 번 실행될 수 있습니다.

설치 관리자는 다음 사항에 유의합니다.

  • 기본적으로 시퀀스 테이블에서 즉시 작업을 실행합니다.
  • 시퀀스 테이블의 조건식 필드가 False로 평가되면 작업을 실행하지 않습니다.
  • 내부 사용자의 인터페이스 수준이 전체 UI 모드로 설정된 경우 클라이언트 프로세스에서 UI 시퀀스 테이블을 처리합니다(UI 수준에 대한 설명은 MsiSetInternalUI 참조).
  • Windows 2000을 사용할 때 기본적으로 등록된 서비스이며, 이 경우 실행 시퀀스 테이블이 설치 관리자 서비스에서 처리됩니다.

다음 옵션 플래그를 사용하여 사용자 지정 작업의 여러 즉각적인 실행을 제어할 수 있습니다. 옵션을 설정하려면 이 테이블의 값을 CustomAction 테이블의 Type 필드에 있는 값에 추가합니다. 지연된 실행 사용자 지정 작업과 함께 다음 플래그를 사용하면 안 됩니다.

(기본값)

16진수: 0x00000000

10진수: 0

항상 실행합니다. 두 시퀀스 테이블에 있는 경우 작업이 두 번 실행 될 수 있습니다.

msidbCustomActionTypeFirstSequence

16진수: 0x00000100

10진수: 256

두 시퀀스 테이블에 모두 있는 경우 한 번만 실행합니다. UI 시퀀스가 실행된 경우 항상 실행 시퀀스에서 작업을 건너뜁니다. UI 시퀀스에는 영향이 없습니다. 이 작업은 실행 시퀀스에서 건너뛰기 위해 UI 시퀀스에 있거나 실행될 필요가 없습니다. 설치 서비스 등록의 영향을 받지 않습니다.

msidbCustomActionTypeOncePerProcess

16진수: 0x00000200

10진수: 512

두 시퀀스 테이블 모두에 있는 경우 프로세스당 한 번 실행합니다. UI 시퀀스가 동일한 프로세스에서 실행되는 경우(예: 둘 다 클라이언트 프로세스에서 실행되는 경우) 실행 시퀀스의 작업을 건너뜁니다. 속성 및 데이터베이스 데이터와 같은 세션 상태를 수정하는 작업이 두 번 실행되지 않도록 하는 데 사용됩니다.

msidbCustomActionTypeClientRepeat

16진수: 0x00000300

10진수: 768

UI 시퀀스가 실행된 후 클라이언트에서 실행되는 경우에만 실행합니다. 작업은 실행 시퀀스가 UI 시퀀스에 따라 클라이언트에서 실행되는 경우에만 실행됩니다. 클라이언트 세션에 대해 이미 수행된 경우 또는 논리를 제공하거나 UI 관련 처리를 표시하지 않는 데 사용할 수 있습니다.

두 가지 서로 다른 실행 모드 동안 사용자 지정 작업을 실행하려면 CustomAction 테이블에 두 개의 항목을 작성합니다. 예를 들어 모드가 MSIRUNMODE_SCHEDULED 및 MSIRUNMODE_ROLLBACK일 때 C/C++ DLL(동적 링크 라이브러리)(사용자 지정 작업 유형 1)을 호출하는 사용자 지정 작업을 수행하려면 동일한 DLL을 호출하지만 숫자 형식이 다른 CustomAction 테이블에 두 개의 항목을 배치합니다. MsiGetMode를 호출하여 사용자 지정 작업을 실행할 시기를 결정하는 코드를 포함합니다.

사용자 지정 작업 참조

사용자 지정 작업 정보

사용자 지정 작업 사용