Compartilhar via


Usando a API para mesclar um módulo de mesclagem em um banco de dados

Os módulos de mesclagem fornecem um método padrão para os desenvolvedores entregarem componentes compartilhados do Windows Installer e a lógica de instalação para seus aplicativos. Os módulos de mesclagem devem ser mesclados em um pacote de instalação usando uma ferramenta de mesclagem. A melhor alternativa é obter uma ferramenta de mesclagem distribuída gratuitamente ou comprar uma das ferramentas de mesclagem disponíveis de fornecedores independentes de software. Por exemplo, você pode usar a funcionalidade fornecida pelo Mergemod.dll.

Use as etapas a seguir em sequência para mesclar um módulo de mesclagem em um banco de dados de instalação do Windows Installer pela API do Mergemod.dll.

Para mesclar um módulo de mesclagem em um banco de dados de instalação do Windows Installer

  1. Abrir um arquivo de log usando OpenLog. Essa etapa é necessária somente se você precisa criar um arquivo de log ou acrescentar um arquivo de log existente para o processo de mesclagem.

  2. Abrir o banco de dados de instalação, um arquivo.msi, que receberá o módulo de mesclagem usando OpenDatabase. Essa etapa é necessária.

  3. Abrir o módulo de mesclagem, um arquivo .msm, que está sendo mesclado no banco de dados usando OpenModule. Um módulo deve ser aberto antes de ser mesclado com um banco de dados de instalação. Essa etapa é necessária.

  4. Mesclar o módulo no banco de dados de instalação usando Merge ou MergeEx. Observe que Merge ou MergeEx só pode ser chamado uma vez para mesclar uma combinação específica de arquivos .msi e .msm. MergeEx só está disponível ao usar a versão 2.0 de Mergemod.dll ou posterior e ao usar a interface de IMsmMerge2 somente. Essa etapa é necessária.

  5. Chamar get_Errors e examinar a coleção recuperada de erros para conflitos de mesclagem ou outros erros. A recuperação não é destrutiva. Várias instâncias da coleção de erros podem ser recuperadas ao ler repetidamente a chamada get_Errors. Será preciso resolver os erros de acordo com o seu caso.

  6. Associe os componentes do módulo de mesclagem aos recursos adicionais que foram ou serão mesclados no banco de dados de instalação usando Connect. O recurso já deve existir antes de chamar esse método. Esta etapa será necessária somente se você tiver recursos adicionais. Para obter mais informações, consulte Conectar um módulo de mesclagem a vários recursos

  7. Caso necessário, extraia arquivos de origem do módulo realizando um ou mais dos seguintes procedimentos.

    Para extrair arquivos de um arquivo .cab inserido e copiar em um diretório especificado, use ExtractFiles ou ExtractFilesEx. Observe que ExtractFilesEx necessita da versão 2.0 de Mergemod.dll ou posterior.

    Para extrair arquivos de um arquivo .cab inserido e salvar em um arquivo especificado, use ExtractCAB.

    Para extrair arquivos de um módulo e copiar para uma imagem de origem no disco após a mesclagem, use CreateSourceImage. Observe que CreateSourceImage está disponível apenas com a versão 2.0 de Mergemod.dll ou posterior.

  8. Feche o módulo de mesclagem aberto no momento usando CloseModule. Essa etapa é necessária.

  9. Fechar o banco de dados de instalação aberto no momento usando CloseDatabase. Essa etapa é necessária. Fechar um banco de dados limpa todas as informações de dependência, mas não afeta os erros que não foram recuperados.

  10. Fechar o arquivo de log atual usando CloseLog. Essa etapa será necessária se você tiver aberto um arquivo de log.

Depois que o módulo for mesclado no banco de dados usando Mergemod.dll, a Tabela de mídia deve ser atualizada para descrever o layout de imagem de origem desejado. O processo de mesclagem fornecido pelo Mergemod.dll não atualiza a Tabela de mídia porque o consumidor do módulo de mesclagem pode selecionar várias maneiras de apresentar a imagem de origem.