2009-04-08 14 views
6

Tengo un archivo que tiene una versión de 32 bits y una de 64 bits. Si instalo mi aplicación en una máquina de 32 bits, quiero que se instale la versión de 32 bits del archivo. Del mismo modo, la versión de 64 bits debería instalarse si la instalación se ejecuta en una máquina de 64 bits. ¿Cómo puedo verificar qué tipo de máquina está ejecutando el instalador con WiX?¿Cómo instalo condicionalmente un archivo con WiX basado en la máquina de destino (32 bits o 64 bits)?

Por favor, no hay respuestas de una línea. Estoy buscando etiquetas de WiX específicas y dónde colocarlas en mi script de WiX.

Respuesta

4

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

VersionNT64 

y

Not VersionNT64 

Pero la forma correcta es compilar los instaladores independientes para 32 y 64 de OS bits y 64 los componentes de bits también se deben marcar como tales (con Win64="yes"). No sé si es posible marcar un paquete de Windows Installer como dirigido tanto a Intel como a x64. La única vez que hice una instalación de arquitectura mixta es con NSIS, todos mis instaladores de WiX tienen instaladores separados para cada arquitectura.

2

La forma correcta de hacerlo es compilar dos configuraciones, una para 32 (x86) y otra para 64 (amd64). Luego, empaqueta esos dos msi dentro de un solo msi y ejecuta el apropiado en tiempo de ejecución.

0

Puede crear un archivo wxs base utilizando variables de entorno o preprocesador y completar los atributos necesarios antes de compilar. Otra opción sería ejecutar un script antes de la compilación que incluya diferentes GUID en el archivo para una instalación específica. En resumen, no creo que haya una forma simple de crear instaladores para diferentes arquitecturas, por lo que debe usar utilidades adicionales.

Cuestiones relacionadas