다음을 통해 공유


롤백 사용자 지정 작업

설치 관리자가 설치 스크립트를 처리할 때 동시에 롤백 스크립트를 생성합니다. 롤백 스크립트 외에도 설치 관리자는 설치 중에 삭제하는 모든 파일의 복사본을 저장합니다. 이러한 파일은 숨겨진 시스템 디렉터리에 보관됩니다. 설치가 완료되면 롤백 스크립트와 저장된 파일이 삭제됩니다. 설치에 실패한 경우 설치 관리자는 설치 중에 변경한 내용을 롤백하고 컴퓨터의 원래 상태를 복원하려고 시도합니다.

데이터베이스 테이블에 행을 삽입하여 시스템 작업을 예약하는 사용자 지정 작업은 설치 롤백에 의해 역방향되지만 시스템을 직접 변경하거나 명령을 다른 시스템 서비스로 발급하는 사용자 지정 작업은 롤백으로 항상 되돌릴 수는 없습니다. 롤백 사용자 지정 작업은 설치 롤백 중에만 설치 관리자가 실행하는 작업이며, 그 목적은 시스템을 변경한 사용자 지정 작업을 되돌리는 것입니다.

롤백 사용자 지정 작업은 설치 시퀀스 중에 호출될 때 실행이 지연되므로 지연된 실행 사용자 지정 작업의 유형입니다. 롤백 중에만 실행된다는 점에서 지연된 일반 사용자 지정 작업과 다릅니다. 롤백 사용자 지정 작업은 작업 시퀀스에서 롤백되는 지연된 사용자 지정 작업보다 항상 선행해야 합니다. 롤백 사용자 지정 작업은 지연된 사용자 지정 작업이 실행 중에 중단되는 경우도 처리해야 합니다. 예를 들어 사용자 지정 작업이 실행되는 동안 사용자가 취소 단추를 누르는 경우입니다.

롤백 사용자 지정 작업은 비동기적으로 실행할 수 없습니다. 동기 및 비동기 사용자 지정 작업을 참조하세요.

롤백 사용자 지정 작업에 대한 보완은 커밋 사용자 지정 작업입니다. 설치 관리자는 설치 시퀀스 중에 커밋 사용자 지정 작업을 실행하고, 사용자 지정 작업을 롤백 스크립트에 복사하지만 롤백 중에는 작업을 실행하지 않습니다.

롤백 사용자 지정 작업이 커밋 사용자 지정 작업으로 변경된 내용을 모두 제거하지 못할 수 있습니다. 설치 관리자가 롤백 스크립트에 롤백 및 커밋 사용자 지정 작업을 모두 작성하지만 커밋 사용자 지정 작업은 설치 관리자가 설치 스크립트를 성공적으로 처리한 후에만 실행됩니다. 커밋 사용자 지정 작업은 롤백 스크립트에서 실행할 첫 번째 작업입니다. 커밋 사용자 지정 작업이 실패하면 설치 관리자는 롤백을 시작하지만 롤백 스크립트에 이미 작성된 작업만 롤백할 수 있습니다. 즉, 커밋 사용자 지정 작업에 따라 롤백이 작업에 의해 변경된 내용을 실행 취소하지 못할 수 있습니다. 반환 코드를 무시하도록 사용자 지정 작업을 작성하여 커밋 사용자 지정 작업의 오류를 무시할 수 있습니다.

설치 관리자가 롤백 사용자 지정 작업을 실행하는 경우 설정할 유일한 모드 매개 변수는 MSIRUNMODE_ROLLBACK입니다. 실행 모드 매개 변수에 대한 설명은 MsiGetMode를 참조하세요.

CustomAction 테이블의 형식 필드에 옵션 플래그를 추가하여 롤백 사용자 지정 작업을 지정할 수 있습니다. 사용자 지정 롤백 작업을 지정하는 옵션 플래그는 사용자 지정 작업 스크립트 내 실행 옵션을 참조하세요.

롤백 및 커밋 사용자 지정 작업은 롤백을 사용하지 않도록 설정된 경우 실행되지 않습니다. 패키지 작성자가 적절한 설치를 위해 이러한 유형의 사용자 지정 작업이 필요한 경우 롤백을 사용하지 않도록 설정할 때 설치가 계속되지 않도록 하는 조건에서 RollbackDisabled 속성을 사용해야 합니다. 롤백을 사용하지 않도록 설정하는 방법에 대한 자세한 내용은 롤백 설치(Windows 설치 관리자)를 참조하세요.