Como instalo condicionalmente um arquivo com WiX baseado na máquina de destino (32 bits ou 64 bits)?

StackOverflow https://stackoverflow.com/questions/730534

  •  06-09-2019
  •  | 
  •  

Pergunta

Eu tenho um arquivo que tem uma versão de 32 bits e uma versão de 64 bits.Se eu instalar meu aplicativo em uma máquina de 32 bits, quero que a versão de 32 bits do arquivo seja instalada.Da mesma forma, a versão de 64 bits deverá ser instalada se a instalação for executada em uma máquina de 64 bits.Como verifico em qual tipo de máquina o instalador está sendo executado com WiX?

Por favor, não há respostas de uma linha.Estou procurando tags WiX específicas e onde colocá-las em meu script WiX.

Foi útil?

Solução

Você poderia provavelmente Basta fazer dois componentes separados, usando as condições

 VersionNT64

e

 Not VersionNT64

Mas a maneira correta é compilar instaladores separados para os OS de 32 e 64 bits e componentes de 64 bits também devem ser marcados como tal (com Win64="yes") - Não sei se é possível marcar um pacote de instalador do Windows como direcionado para a Intel e X64. Somente o momento em que fiz uma instalação de arquitetura mista é com o NSIS, todos os meus instaladores do WIX têm instaladores separados para cada arquitetura.

Outras dicas

A maneira correta de fazê -lo é compilar duas configurações, uma para 32 (x86) e uma para 64 (AMD64). Em seguida, você empacota esses dois MSI dentro de um único MSI e executa o apropriado em tempo de execução.

Você pode criar um arquivo wxs base usando variáveis ​​de ambiente ou pré-processador e preencher os atributos necessários antes de compilar.Outra opção seria executar um script antes da construção que inclua diferentes GUIDs no arquivo para instalação específica.Resumindo, não creio que exista uma maneira simples de construir instaladores para diferentes arquiteturas, então você terá que usar utilitários adicionais.

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