2013-02-01 20 views
10

Ho versioni x64 e x86 del mio installer .msi e voglio spedire un singolo file eseguibile che controlla semplicemente l'architettura della macchina ed esegue il file MSI x86/x64 . Le MSI sono fondamentalmente identiche, installano gli stessi file AnyCPU, che ho racchiudere in un file CAB condiviso in modo da non raddoppiare la dimensione del programma di installazione.WiX masterizza bootstrapping x86 e x64 msi in un singolo bootstrapper No-UI

Finora ho provato WiX Burn, che visualizza una GUI che non desidero (voglio solo utilizzare la GUI MSI), e ho provato a disabilitare la GUI di masterizzazione tramite/flag silenzioso - questo si diffonde segnala agli MSI in modo da disabilitare tutta la GUI per gli MSI (non quello che voglio).

Penso di essere corretto quando dico non esiste alcuna versione No-GUI di Burn bootstrapper e per crearne uno è necessario modificare il codice sorgente da soli? Questo suona come una caratteristica mancante enorme?

Ho anche provato DotNetInstaller che ha il proprio set di problemi con un'interfaccia utente confusa. Ho anche provato setupbld che non supporta MSI con una cabina esterna.

risposta

-3

È possibile utilizzare le azioni personalizzate e Burn Built-in Variables per verificare se si sta eseguendo su X86 o x64. Sulla base di ciò è possibile eseguire/organizzare l'elenco delle azioni.

<InstallExecuteSequence> 
    <Custom Action="Windows32bitInstall" After="InstallFiles">NOT VersionNT64</Custom> 
    <Custom Action ="Windows64bitInstall" After="InstallFiles" >VersionNT64</Custom> 
    <Custom Action="InstallHelp" After="Windows64bitInstall">NOT Installed</Custom> 
</InstallExecuteSequence> 

Questo si eseguirà con la stessa elevazione.

<CustomAction Id="InstallHelp" Directory="ProgramFilesFolder" 
      Execute="deferred" Impersonate="no" Return="ignore" 
      ExeCommand="[HELPDIR]\help.exe /log" /> 
+1

Non ci sono azioni personalizzate nel pacchetto WIX/bootstrapper. Non è un MSI e non ha proprietà/funzionalità MSI, è un exe/applicazione che aiuta nel concatenamento! – Isaiah4110

8

Per il rilevamento dell'architettura è possibile utilizzare l'attributo InstallCondition nell'elemento MsiPackage.

Per dirla semplicemente provare:

<MsiPackage SourceFile="..\Example\bin\Release\x86\example.msi" Compressed="no" InstallCondition="NOT VersionNT64" /> 
<MsiPackage SourceFile="..\Example\bin\Release\x64\example.msi" Compressed="no" InstallCondition="VersionNT64" /> 

Fonti: http://wix.sourceforge.net/manual-wix3/wix_xsd_msipackage.htm

1

Come le altre risposte suggeriscono è possibile utilizzare la variabile VERSIONNT64 per controllare la piattaforma su cui si sta installando.

Wix Burn supporta la modalità NO-GUI o silenziosa passando il parametro della riga di comando "-q".

Insieme a che supporta i seguenti altri argomenti troppo:

Il wixstdba supporta solo le "opzioni standard del pacchetto":

-q, -quiet, -s, -silent = silent install 
-passive = progress bar only install 
-norestart = suppress any restarts 
-forcerestart = restart no matter what (I don't know why this is still around) 
-promptrestart = prompt if a restart is required (default) 
-layout = create a local image of the bootstrapper (i.e. download files so they can be burned to DVD) 
-l, -log = log to a specific file (default is controled by bundle developer) 
-uninstall = uninstall 
-repair = repair (or install if not installed) 
-package,-update = install (default if no -uninstall or -repair) 

Inserisci il tuo wixburnexename /? Per ottenere i dettagli sulla tua macchina.

Problemi correlati