2012-01-03 16 views
11

Tengo un proyecto Wix desde el que me gustaría instalar controladores de 32 bits cuando se creó con la configuración de lanzamiento x86 y controladores de 64 bits cuando se compila con x64.Instalar controladores de 32 y 64 bits con Wix?

La forma en que estoy haciendo esto ahora es con dos proyectos idénticos, pero uno haciendo referencia a difxapp_x86 y el otro haciendo referencia a difxapp_x64. ¿Puedo mejorar esto?

Además, si me refiero a difxapp_x86 y construir la versión de 64 bits, como era de esperar entonces consigo el error MSI:

"DIFXAPP: ERROR - You need to use the 64-bit version of DIFXAPP.DLL to install drivers on this machine."

¿Es posible hacer referencia a estos condicionalmente en base a la configuración de generación seleccionado?

Gracias, Alan

+0

Recibo el mismo error también. En lugar de usar DIFXAPP, una acción personalizada que simplemente llame a SetupCopyOemInf y que maneje algún error debería permitirle crear un instalador para Windows de 32 bits y de 64 bits (lo he hecho varias veces con éxito, pero no con WiX). –

Respuesta

15

he conseguido encontrar una solución a este que involucró manualmente editando el archivo de proyecto.

I cambió la siguiente parte:

<ItemGroup> 
    <WixLibrary Include="difxapp_x86"> 
    <HintPath>C:\Program Files\Windows Installer XML v3.5\bin\difxapp_x86.wixlib</HintPath> 
    <Name>difxapp_x86</Name> 
    </WixLibrary> 
</ItemGroup> 

a lo siguiente:

<ItemGroup> 
    <WixLibrary Include="difxapp_$(Platform)"> 
    <HintPath>C:\Program Files\Windows Installer XML v3.5\bin\difxapp_$(Platform).wixlib</HintPath> 
    <Name>difxapp_x86</Name> 
    </WixLibrary> 
</ItemGroup> 

Ahora, la ruta de acceso a la referencia será determinado por el estado de la variable plataforma. Espero que ayude a otros con el mismo requisito.

Alan

Cuestiones relacionadas