다음을 통해 공유


ICE 빌드

ICE 참조에 나열된 기존 ICE 사용자 지정 작업 중 필요한 내부 일관성 평가기를 찾을 수 없는 경우 패키지의 유효성을 검사하기 위해 자체 ICE를 준비해야 합니다.

ICE 사용자 지정 작업을 작성할 때 다음을 수행해야 합니다.

  • ICE는 표시된 테이블에 나열된 형식의 사용자 지정 작업에만 기반합니다.
  • MsiProcessMessage를 호출하고 INSTALLMESSAGE_USER 유형의 메시지를 게시합니다. ICE 메시지를 작성할 때 ICE 메시지 지침의 메시지 형식을 따릅니다.
  • API 오류를 캡처하고 항상 ERROR_SUCCESS를 반환할 수 있도록 ICE를 작성합니다. 이는 ICE 실패 후 후속 사용자 지정 작업을 실행할 수 있도록 하는 데 필요합니다.

ICE 사용자 지정 작업은 다음 사용자 지정 작업 유형으로 제한됩니다.

사용자 지정 작업 설명
사용자 지정 작업 유형 1 이진 스트림의 DLL
사용자 지정 작업 유형 2 이진 스트림의 EXE
사용자 지정 작업 유형 5 이진 스트림의 JScript
사용자 지정 작업 유형 6 이진 스트림의 VBScript
사용자 지정 작업 유형 37 JScript 코드를 문자열로
사용자 지정 작업 유형 38 VBScript 코드를 문자열로

 

ICE 사용자 지정 작업을 작성할 때 다음을 수행하지 마세요.

  • ICE가 수신하는 엔진에 대한 핸들이 설치 관리자 데이터베이스의 설치 인스턴스라고 가정하지 마세요. 설치 인스턴스가 아닌 경우 특정 속성이 정의되지 않고, 원본 및 대상 디렉터리가 확인되지 않으며, 현재 기능 상태가 정의되지 않습니다.
  • 설치 관리자 작업, 사용자 지정 작업 또는 다른 ICE의 이전 실행 또는 비실행에 의존하지 마세요. 이전 ICE가 모든 테이블에 임시 열을 만들었을 수 있으므로 작성자는 가능한 경우 항상 이름으로 열을 참조해야 합니다. ICE는 종료하기 전에 임시 열 또는 테이블을 정리해야 합니다.
  • 작성자가 데이터베이스의 원본 디렉터리 이미지에 액세스할 수 있다고 가정하지 마세요.
  • 데이터베이스에 대한 변경 내용이 유지되지 않는다고 가정하지 마세요.

C++의 샘플 ICE

VBScript의 샘플 ICE