다음을 통해 공유


사용자 지정 작업 롤백

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

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

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

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

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

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

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

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

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