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

병합 모듈은 개발자가 공유 Windows Installer 구성 요소 및 설정 논리를 해당 애플리케이션에 제공하는 표준 방법을 제공합니다. 병합 모듈은 병합 도구를 사용하여 설치 패키지에 병합해야 합니다. 가장 좋은 대안은 자유롭게 분산된 병합 도구를 확보하거나 독립 소프트웨어 공급업체에서 사용할 수 있는 병합 도구 중 하나를 구입하는 것입니다. 예를 들어 Mergemod.dll에서 제공하는 기능을 사용할 수 있습니다.

다음 단계를 순서대로 사용하여 Mergemod.dll API를 통해 병합 모듈을 Windows Installer 설치 데이터베이스에 병합합니다.

병합 모듈을 Windows Installer 설치 데이터베이스에 병합

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

  2. OpenDatabase를 사용하여 병합 모듈을 받을 .msi 파일인 설치 데이터베이스를 엽니다. 이 단계는 필수입니다.

  3. OpenModule을 사용하여 데이터베이스에 병합되는 .msm 파일인 병합 모듈을 엽니다. 설치 데이터베이스와 병합하려면 먼저 모듈을 열어야 합니다. 이 단계는 필수입니다.

  4. Merge 또는 MergeEx를 사용하여 모듈을 설치 데이터베이스에 병합합니다. Merge 또는 MergeEx는 .msi 및 .msm 파일의 특정 조합을 병합하기 위해 한 번만 호출할 수 있습니다. MergeExMergemod.dll 버전 2.0 이상을 사용하는 경우에만 사용할 수 있으며 IMsmMerge2 인터페이스를 사용하는 경우에만 사용할 수 있습니다. 이 단계는 필수입니다.

  5. get_Errors를 호출하고 병합 충돌 또는 기타 오류에 대해 검색된 오류 컬렉션을 검사합니다. 이 검색은 비파괴적입니다. get_Errors 호출을 반복적으로 읽어 오류 컬렉션의 여러 인스턴스를 검색할 수 있습니다. 사례에 맞게 오류를 해결해야 합니다.

  6. Connect를 사용하여 설치 데이터베이스에 병합되었거나 병합될 추가 기능과 병합 모듈의 구성 요소를 연결합니다. 이 메서드를 호출하기 전에 기능이 이미 있어야 합니다. 이 단계는 추가 기능이 있는 경우에만 필요합니다. 자세한 내용은 병합 모듈을 여러 기능에 연결을 참조하세요.

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

    포함된 .cab 파일에서 파일을 추출한 다음 지정된 디렉터리에 복사하려면 ExtractFiles 또는 ExtractFilesEx를 사용합니다. ExtractFilesEx에는 Mergemod.dll 버전 2.0 이상이 필요합니다.

    포함된 .cab 파일에서 파일을 추출한 다음 지정된 파일에 저장하려면 ExtractCAB를 사용합니다.

    모듈에서 파일을 추출한 다음 병합 후 디스크의 원본 이미지에 복사하려면 CreateSourceImage를 사용합니다. CreateSourceImageMergemod.dll 버전 2.0 이상에서만 사용할 수 있습니다.

  8. CloseModule을 사용하여 현재 열려 있는 병합 모듈을 닫습니다. 이 단계는 필수입니다.

  9. CloseDatabase를 사용하여 현재 열려 있는 설치 데이터베이스를 닫습니다. 이 단계는 필수입니다. 데이터베이스를 닫으면 모든 종속성 정보가 지워지지만 검색되지 않은 오류에는 영향을 미치지 않습니다.

  10. CloseLog를 사용하여 현재 로그 파일을 닫습니다. 로그 파일을 연 경우 이 단계가 필요합니다.

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