Come faccio a condizionalmente installare un file con WiX basato sul computer di destinazione (32bit o 64bit)?

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

  •  06-09-2019
  •  | 
  •  

Domanda

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 da installare. Allo stesso modo, la versione a 64 bit dovrebbe ottenere installato se l'installazione viene eseguito su un computer a 64 bit. Come faccio a controllare che tipo di macchina il programma di installazione viene eseguito su con WiX?

Per favore, non di una sola riga risposte. Sto cercando specifici tag WiX e dove metterli nel mio script WiX.

È stato utile?

Soluzione

Si potrebbe probabilmente solo 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 sistemi operativi e componenti a 64 bit dovrebbe anche essere contrassegnati come tali (con Win64="yes") - non so se è ancora possibile marcare un pacchetto di Windows Installer come indirizzati verso Intel e x64. Solo il tempo che abbia mai fatto un impianto di un'architettura mista è con NSIS, tutti i miei installatori WiX hanno programmi di installazione separati per ogni architettura.

Altri suggerimenti

Il modo corretto di farlo è quello di compilare due configurazioni, una per 32 (86) e uno per 64 (amd64). Poi si comprime questi due msi all'interno di una singola msi ed eseguire quello appropriato in fase di esecuzione.

È possibile creare un file di base WXS utilizzando le variabili di ambiente o del preprocessore e compilare gli attributi richiesti prima della compilazione. Un'altra opzione sarebbe essere in esecuzione di uno script prima della build che include diversi GUID nel file per l'installazione specifica. In breve, non credo ci sia un modo semplice di installatori di costruzione per diverse architetture, quindi bisogna usare utility aggiuntive.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top