자동화를 사용하여 병합 모듈을 데이터베이스에 병합

병합 모듈은 사용자가 공유 Windows Installer 구성 요소 및 설정 논리를 해당 애플리케이션에 제공하는 표준 방법을 제공합니다.

병합 모듈은 병합 도구를 사용하여 설치 패키지에 병합해야 합니다. 가장 좋은 방법은 자유롭게 분산된 병합 도구를 가져오거나 독립 소프트웨어 공급업체에서 사용할 수 있는 병합 도구 중 하나를 구매하는 것입니다. 예를 들어 Mergemod.dll을 사용할 수 있습니다.

다음 절차에서는 병합 모듈 자동화를 사용하여 병합 모듈을 Windows Installer 데이터베이스에 병합하는 방법을 보여줍니다.

모듈을 데이터베이스에 병합하려면

  1. OpenLog 메서드를 사용하여 로그 파일을 엽니다.

    이 단계는 병합 프로세스에 대해 로그 파일을 만들거나 기존 로그 파일을 추가해야 하는 경우에만 필요합니다.

  2. 병합 개체OpenDatabase 메서드를 사용하여 .msi 설치 데이터베이스를 엽니다.

    이 단계는 필수입니다.

    열려는 데이터베이스는 병합 모듈을 받으려는 데이터베이스입니다.

  3. OpenModule 메서드를 사용하여 .msm 병합 모듈을 엽니다.

    이 단계는 필수입니다.

    데이터베이스에 병합되는 병합 모듈입니다. 설치 데이터베이스와 병합하려면 먼저 모듈을 열어야 합니다.

  4. Merge 메서드 또는 MergeEx 메서드를 호출하여 모듈을 설치 데이터베이스에 병합합니다.

    이 단계는 필수입니다.

    Merge 메서드 또는 MergeEx 메서드를 한 번만 호출하여 특정 조합의 .msi 및 .msm 파일을 병합할 수 있습니다.

    참고

    MergeEx 메서드는 Mergemod.dll 버전 2.0 이상을 사용하는 경우에만 사용할 수 있으며 IMsmMerge2 인터페이스를 사용하는 경우에만 사용할 수 있습니다.

     

  5. Errors 속성을 검색하고 병합 충돌 또는 기타 오류에 대해 반환하는 Error 개체의 컬렉션을 검사합니다.

    오류를 해결해야 합니다.

    검색은 비파괴적이며 Errors 속성을 반복적으로 읽어 오류 컬렉션의 여러 인스턴스를 검색할 수 있습니다.

  6. Connect 메서드를 사용하여 병합 모듈의 구성 요소를 기능과 연결합니다.

    이 단계는 기존 기능이 있고 설치 데이터베이스에 병합할 기능을 추가하려는 경우에만 필요합니다.

    이 메서드를 호출하기 전에 기능이 있어야 합니다. 자세한 내용은 여러 기능에 병합 모듈 연결을 참조하세요.

  7. 필요한 경우 다음 중 하나 이상을 수행하여 모듈에서 원본 파일을 추출합니다.

  8. CloseModule 메서드를 사용하여 현재 열린 병합 모듈을 닫습니다.

    이 단계는 필수입니다.

  9. CloseDatabase 메서드를 사용하여 열린 설치 데이터베이스를 닫습니다.

    이 단계는 필수입니다.

    데이터베이스를 닫으면 모든 종속성 정보가 지워지지만 검색되지 않은 오류에는 영향을 미치지 않습니다.

  10. CloseLog 메서드를 사용하여 현재 로그 파일을 닫습니다.

    열린 로그 파일이 있는 경우 이 단계가 필요합니다.

Mergemod.dll을 사용하여 모듈을 데이터베이스에 병합한 후에는 원하는 원본 이미지 레이아웃을 설명하도록 미디어 테이블을 업데이트해야 합니다. 병합 모듈의 소비자가 원본 이미지를 레이아웃하는 다양한 방법을 선택할 수 있으므로 Mergemod.dll에서 제공하는 병합 프로세스는 미디어 테이블을 업데이트하지 않습니다.

릴리스된 버전, 도구 및 재배포 가능 패키지