Pergunta

Eu tenho um InstallShield InstallScript MSI projeto que contém o FLEXnet Connect sem o Gerenciador de Software do módulo de intercalação.A versão deste produto está 6.0.32.Criei uma segunda installer para a versão 6.1, que contém, também, o FLEXnet Connect sem o Gerenciador de Software do módulo de intercalação.Quando eu executar uma atualização importante em um sistema que contém o 6.0.32 versão recebo uma mensagem no log do MSI, afirmando que:

Disallowing installation of component: {FF970098-B748-427B-B946-AA8E1A1F82AD} since the same component with higher versioned keyfile exists

O componente é fazer referência a isusweb.dll arquivo localizado no FLEXnet Connect pasta.

Parece que essa verificação ocorre antes da 6.0.32 produto a ser removido.A instalação prossegue para remover o 6.0.32 o produto, que remove isusweb.dll.Durante o 6.1 instalar o isusweb.dll não colocar de volta por causa do componente de verificação de versão.

A atualização for bem-sucedida.Quando tento executar o aplicativo a partir de um atalho verifica os componentes.Desde o isusweb.dll está faltando o MSI tentativas de reparação, em seguida, não é possível encontrar a MSI e não permite o aplicativo de abrir.

Existe alguma maneira para obter o módulo de mesclagem para sempre substituir?

Foi útil?

Solução

Isso parece suspeito como este erro:

http://support.microsoft.com/kb/905238/en-us

e eu me deparei com esse erro e fazer ver que a mensagem de log, e RemoveExistingProducts é no início da instalação.Decidir não instalar o arquivo com base na versão superior, estar lá, mas não re-avaliar essa decisão depois que o REPRESENTANTE de remove-lo.Em seguida, um reparo restaura-lo quando você usar um atalho.O erro deve aplicar-se somente a arquivos no GAC ou lado a lado, de modo que é um pouco intrigante.

Se você pode agendar REP no final da seqüência de transação (InstallExecute, REP, InstallFinalize) que deve corrigir - pode valer a pena tentar, todos os outros efeitos de movimento a ser ok.

Outras dicas

Módulos de mesclagem não são instalados, eles se fundiram.MSI do produto a ser instalado.Um dos problemas com o uso de terceiros módulos de mesclagem é se eles têm um bug, não há muito que você pode fazer sobre ele.

Eu considere a criação de um MSI exclusivamente para a finalidade de encapsular isso MSM.Então eu teria que criar um programa de configuração prereq ou suite installer para instalar esta MSI além de seu produto MSI.

Você tem dois realmente boas respostas já, mas para tentar sintetizar:

Ele realmente soa como um buggy de módulo de mesclagem. Phil sugere para corrigir o seu REPRESENTANTE de colocação no InstallExecuteSequence para contornar o bug. Chris sugere colocar o defeito do módulo de intercalação em sua própria instalação.Concordo com ambos e acho que você deve seguir tanto as sugestões:

  • Remover o módulo de mesclagem do seu principal programa de configuração.
  • Criar uma nova instalação e adicione o defeito do módulo de mesclagem e garantir o direito de REPRESENTANTE de seqüenciamento.

Para o REPRESENTANTE de correção para trabalhar o componente de referência deve ser 100% correto, agora e no futuro.Para eliminar isso como um problema de criar um instalação separado permite que você para conter o buggy módulo dentro de seu próprio MSI.Isto irá ajudá-lo a evitar re-ativar o erro por erro, ou por design alterado no futuro - e o último, nunca é improvável.

Como diz o Chris:um módulo de mesclagem não é entregue, ele é mesclado.Atualizado, um módulo de mesclagem podem estar disponíveis para todos, eu sei, mas mesmo assim, é sábio para contê-lo.Especialmente quando você está lidando com o GAC (Cache de Assembly Global).

Outra solução que eu aplicada quando encontrou este erro foi definido para atualizar a "Versão" de coluna do Ficheiro de tabela, no módulo de mesclagem, usando o Orca.Definir que, para a máxima 65535.65535.65535.65535, isso vai forçar o upgrade para sempre instalar a DLL do módulo de mesclagem.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top