Domanda

Sto cercando di accedere al valore della proprietà TargetPlatform (che è possibile impostare in un progetto di distribuzione) dalla condizione all'interno di una "condizione di avvio".

In sostanza sto cercando di dire l'applicazione non di installarsi come applicazione a 32 bit se è installata una versione a 64 bit di Office su quel computer. Perciò ho bisogno di ottenere in qualche modo bitness dell'applicazione e metterlo in una condizione di avvio.

posso ottenere il numero di bit di Office dal Registro di sistema, ma non so come accedere alla TargetPlatform dal programma di installazione.

Grazie!

È stato utile?

Soluzione

Qui ci sono due link:

Dal link qui sopra si può dedurre che non è possibile indirizzare entrambe le piattaforme da un programma di installazione MSI. Sarà necessario avere due installatori. A seconda di come il programma di installazione è costruita, x86 o x64, dipenderà il modo in cui interpreta installazione alcune costanti che raccontano dove forma di installare i file - Programmi o Programmi (x86) .

Non è possibile modificare il TargetPlatform del programma di installazione in fase di esecuzione.

Cosa si può fare forse è quella di avere due installatori imballato in un terzo e in base alla versione di Office installata che tu dici è possibile ottenere eseguire sia sub-installer x86 o sub-installer x64, che effettivamente installare i file dell'applicazione .

Se installer MSI non è il requisito più esterno vorrei andare per NSIS . In caso contrario, almeno pacchetto del agli installatori MSI in un uno NSIS. E ' incredibilmente facile. NSIS è più fresco modo di MSI, parlando per esperienza.

Altri suggerimenti

Ho letto questa domanda un paio di volte e non sono sicuro al 100% ho capito ciò che si sta cercando di fare. Avete un'applicazione a 32 bit e si desidera installare solo se hanno 32 bit di Office (2010 presumo) installato? Hai anche una versione a 64 bit che si desidera installare, se è installato Office 64 bit?

Io non sono sicuro perché è necessario preoccuparsi di proprietà TargetPlatform perché se si sa che a 64 bit è installato Office si deve, per definizione, essere un sistema operativo a 64 bit. Se è installato a 32 bit di Office che si potrebbe essere un sistema operativo a 64 bit, ma è veramente importante? Hai detto che ti importasse circa il numero di bit di Office non di Windows.

I potrebbe pensare, da quello che ho letto, che se si dispone di un AppSearch che tira il numero di bit in una proprietà che si potrebbe utilizzare un LaunchCondition che usi quella proprietà insieme a "o installata" (a maniglia essere in grado di disinstallare l'applicazione se Office è stato disinstallato prima) e che bene.

Aggiungere un'azione personalizzata prima che l'installazione inizia ad eseguire il controllo. Utilizzare una classe Installer per eseguire l'azione personalizzata . È possibile utilizzare l'evento OnBeforeInstall per leggere la chiave di registro e verificare il numero di bit a seconda dei casi. Un'eccezione causerà l'installazione di abortire, ma ci può essere un modo più pulito per fare questo.

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