Eu quero instalar uma MSI duas vezes

6

Eu tenho um desejo peculiar de instalar um msi duas vezes em uma máquina. O objetivo da instalação dupla é primeiro instalar sob a pasta de pré-produção, executar a implantação em um ambiente seguro antes de implantar na pasta de produção.

Normalmente, usamos máquinas separadas para representar esses ambientes diferentes. No entanto, neste caso, preciso usar a mesma caixa.

Os dois cenários que obtenho são os seguintes:

  • Eu instalei a pré-produção, estou feliz, quero instalar a produção, eu corro o msi, ele pergunta se eu quero reparar ou remover a instalação
  • Tenho a produção instalada, quero instalar a nova versão do msi, ela me diz que eu já tenho uma versão do produto instalada e primeiro preciso desinstalar a versão atual

O primeiro cenário não é tão ruim como podemos, nesse ponto, instalar e reinstalar de maneira sensata sob a pasta de produção, mas o segundo cenário é um problema, já que não queremos desinstalar a produção ao vivo implantação.

Existe uma configuração que eu posso dar ao msiexec que permitirá isso?

Existe uma abordagem diferente mais adequada que eu poderia usar?

    
por Don Vince 14.08.2009 / 21:06

5 respostas

5

Veja o que os Less Msiérables (LessMSI) de Scott Willeke podem fazer por você ...

link

Use-o para extrair e alterar guias e / ou conteúdo do MSI, reempacotar e executar sua necessidade de 'instalar duas vezes'.

    
por 14.08.2009 / 21:46
13

Virtualize, seriamente

    
por 14.08.2009 / 21:23
5

O Windows Installer tem um recurso interno que deve permitir o que você deseja fazer: " Transformações de instâncias ", mas apesar de toda a minha experiência MSI eu não usei muito. Ele permite que você instale o mesmo produto várias vezes através da propriedade MSINEWINSTANCE e um conjunto de transformação na linha de comando.

Se este for um aplicativo de terceiros , eu optaria pela abordagem de virtualização que já foi recomendada. Você deve estar ciente de que pode virtualizar os pacotes usando pacotes virtuais do Microsoft App-V ou simplesmente usar Implementações VMWare ou Virtual PC (PCs virtuais em vez de pacotes virtuais).

Pacotes virtuais do Microsoft App-V e novas tecnologias de virtualização permitem alguns novos coisas em comparação com uma aplicação normal:

  • Streaming de aplicativos - nenhuma instalação local em máquinas - JIT
  • Use dois softwares incompatíveis no mesmo computador
  • Atualizando pelo servidor
  • Controlar o licenciamento - use o máximo de usuários simultâneos ou conecte o software a um grupo / usuário.
  • Apresentar o aplicativo de maneira rápida e fácil aos usuários
  • Mais marketing da Microsoft aqui .

Se este for um aplicativo interno onde você pode ter um diálogo com a equipe de desenvolvimento, uma solução viável é criar um segundo MSI de desenvolvimento que instale a versão de pré-lançamento lado a lado com a versão de produção. Esses arquivos MSI precisarão então ser criados para poder coexistir de maneira civilizada. Isso é bastante complicado - e envolve coisas como não lutar contra as mesmas associações de arquivos, não registrar componentes COM de todo o sistema de locais diferentes, não sobrescrever as chaves de registro uns dos outros, não usar os mesmos atalhos, não sobrescrever os arquivos de configurações uns dos outros ( texto, xml, ini, etc ..). Existem muitos desafios.

Por fim, e a abordagem que geralmente escolhemos, podemos fazer com que o MSI instale uma configuração diferente com base nos parâmetros passados para ela. Assim, você pode ter uma propriedade chamada CUSTOM_ENVIRONMENT="DEV" para instalar uma instância de teste do seu aplicativo. Essa abordagem se baseia em um único MSI capaz de se instalar em diferentes tipos - embora - e, portanto, não pareça corresponder ao que você está pedindo.

Então, em resumo (na ordem da minha preferência subjetiva):

  1. Virtualize - Eu gosto do fato de que esse tipo de problema remove todo o problema.
  2. Instalação lado a lado : (Múltiplos MSIs PROD / DEV / UAT com capacidade de coexistência lado-a-lado ( Somente aplicativo interno )
  3. Transformações de Instância? (como eu disse, não usei - mas é isso que deve ajudar)
  4. MSI com reconhecimento de ambiente (MSI único capaz de instalar como PROD / DEV / UAT) ( Apenas aplicativo interno )
por 19.09.2009 / 19:09
4

Não é possível instalar exatamente o mesmo MSI duas vezes. Você pode conseguir abrir o MSI e alterar os GUIDs para instalá-lo uma segunda vez. Esteja ciente de que desta forma existem dragões. A menos que você seja excepcionalmente sortudo ou que a instalação / produto seja excepcionalmente simples, posso garantir que não apenas sua segunda instalação não funcionará, mas também a primeira instalação também. Eu recomendaria enfaticamente resolver o problema que faz você pensar que é necessário usar uma caixa.

    
por 14.08.2009 / 21:13
0

A única coisa que o impede de instalá-lo duas vezes é o ProductCode Guid, se você alterar, ele removerá a mensagem "este produto já está instalado" e permitirá a instalação. Isso é o que uma transformação de instância está fazendo, mas você pode fazer o mesmo abrindo-a no Orca e alterando o código do produto na tabela de propriedades.

Obviamente, mesmo que você o faça para instalar duas vezes, certifique-se de não estar sobrescrevendo nos mesmos locais.

    
por 15.06.2010 / 11:34