¿Cómo puedo condicionalmente instala un archivo con WiX basado en la máquina de destino (32 o 64 bits)?

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

  •  06-09-2019
  •  | 
  •  

Pregunta

Tengo un archivo que tiene una versión de 32 bits y una versión de 64 bits. Si instalo mi aplicación en una máquina de 32 bits, quiero que la versión de 32 bits del archivo que se va a instalar. Del mismo modo, la versión de 64 bits debe tener instalado si la instalación se ejecuta en un equipo de 64 bits. ¿Cómo puedo comprobar qué tipo de máquina, el instalador se ejecuta con WiX?

Por favor, no hay una sola línea de respuestas. Busco etiquetas WiX específicas y dónde ponerlos en mi guión WiX.

¿Fue útil?

Solución

podría probablemente acaba de hacer dos componentes separados, utilizando las condiciones

 VersionNT64

y

 Not VersionNT64

Sin embargo, la forma correcta es compilar los instaladores independientes para 32 y 64 de bits del sistema operativo y componentes de 64 bits también debe ser marcado como tal (con Win64="yes") - No sé si es aún posible marcar un paquete de Windows Installer como dirigido a Intel y x64. Única vez que he hecho una instalación arquitectura mixta es con NSIS, todos mis instaladores WiX tienen instaladores independientes para cada arquitectura.

Otros consejos

La manera apropiada de hacerlo es compilar dos configuraciones, una para 32 (x86) y una para 64 (amd64). Entonces se empaqueta esos dos MSI dentro de un único MSI y ejecutar el apropiado en tiempo de ejecución.

Se puede crear un archivo wxs base usando variables de entorno o del preprocesador y rellenar los atributos requeridos antes de compilar. Otra opción sería correr un script antes de la compilación que incluye diferentes GUID en el archivo de instalación específica. En resumen, no creo que hay una manera sencilla de instaladores de construcción para diferentes arquitecturas, así que tienes que usar las utilidades adicionales.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top