2012-01-03 26 views
11

Ho un progetto Wix da cui vorrei installare i driver a 32 bit quando sono stati creati con la configurazione di rilascio x86 e driver a 64 bit quando sono stati creati con x64.Installazione di driver a 32 e 64 bit con Wix?

Il modo in cui sto facendo questo ora è con due progetti identici, ma un riferimento a difxapp_x86 e l'altro referenziare difxapp_x64. Posso migliorare su questo?

Inoltre, se mi riferisco difxapp_x86 e costruire la versione a 64 bit, quindi non sorprende ottengo l'errore MSI:

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

E 'possibile fare riferimento a questi condizionale in base alla configurazione di generazione selezionato?

Grazie, Alan

+0

Sto ricevendo lo stesso errore anche. Invece di usare DIFXAPP, un'azione personalizzata che chiama semplicemente SetupCopyOemInf e gestisce alcuni errori dovrebbe consentire di creare un unico programma di installazione per Windows a 32 e 64 bit (l'ho fatto con successo molte volte, ma non con WiX). –

risposta

15

sono riuscito a trovare una soluzione a questo che ha coinvolto manualmente la modifica del file di progetto.

ho cambiato la seguente 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> 

Al seguente:

<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> 

Ora il percorso del riferimento sarà determinato dallo stato della variabile piattaforma. Spero che aiuti gli altri con lo stesso requisito.

Alan

Problemi correlati