2009-04-08 3 views
6

Ho un file che ha una versione a 32 bit e una versione a 64 bit. Se installo la mia applicazione su una macchina a 32 bit, voglio che la versione a 32 bit del file sia installata. Allo stesso modo, la versione a 64 bit dovrebbe essere installata se l'installazione viene eseguita su una macchina a 64 bit. Come posso verificare su quale tipo di macchina viene eseguito il programma di installazione con WiX?Come installo condizionatamente un file con WiX basato sul computer di destinazione (32 bit o 64 bit)?

Per favore, nessuna risposta su una riga. Sto cercando specifici tag WiX e dove metterli nel mio script WiX.

risposta

4

Si potrebbe probabilmente basta fare due componenti separati, utilizzando le condizioni

VersionNT64 

e

Not VersionNT64 

Ma il modo corretto è quello di compilare installatori separate per 32 e 64 bit OS di e 64 Anche i componenti bit devono essere contrassegnati come tali (con Win64="yes"). Non so se sia possibile contrassegnare un pacchetto di Windows Installer come target sia per Intel che per x64. Solo il tempo in cui ho mai fatto un'installazione con architettura mista è con NSIS, tutti i miei installatori WiX hanno installer separati per ogni architettura.

2

Il modo corretto per farlo è compilare due configurazioni, una per 32 (x86) e una per 64 (amd64). Quindi impacchettate quei due msi all'interno di un singolo msi ed eseguite quello appropriato in fase di runtime.

0

È possibile creare un file base wxs utilizzando variabili di ambiente o preprocessore e compilare gli attributi richiesti prima della compilazione. Un'altra opzione potrebbe essere eseguire uno script prima della generazione che include GUID diversi nel file per l'installazione specifica. In breve, non penso che esista un modo semplice per creare programmi di installazione per architetture diverse, quindi è necessario utilizzare utilità aggiuntive.