2012-05-08 16 views
18

Utilizzo VS2010 e WiX 3.6 per creare pacchetti MSI e raggrupparli nell'impostazione Bootstrapper. Ecco il mio codice Boostrapper.Passare i parametri dal pacchetto pacchetto bootstrapper a msi

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Bundle Name="" Version="" Manufacturer="" UpgradeCode=""> 
     <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" /> 

     <Chain> 
       <MsiPackage SourceFile="Package1.msi"> 
       <MsiProperty Name="PARAM1" Value="[PARAM1]" /> 
       <MsiProperty Name="PARAM2" Value="[PARAM2]" /> 
       </MsiPackage> 
       <MsiPackage SourceFile="Package2.msi"> 
       <MsiProperty Name="PARAM1" Value="[PARAM1]" /> 
       <MsiProperty Name="PARAM2" Value="[PARAM2]" /> 
       </MsiPackage> 
     </Chain> 
    </Bundle> 
</Wix> 

I pacchetti MSI devono avere i parametri specificati per l'esecuzione. Normalmente, chiamerei lo "Packag21.msi PARAM1=1 PARAM2=2". Dopo aver creato il progetto, provo a passare i parametri al mio Bootstrapper.exe nello stesso modo Bootstrapper.exe PARAM1=1 PARAM2=2, ma non sembra passarli all'MSI. Le installazioni si bloccano con la condizione dei parametri mancanti.

C'è un modo per passare i parametri dall'exe al msi?

risposta

5

che non è attualmente disponibile nel programma di avvio automatico di serie: WixStdBa doesn't make the commandline properties available - ID: 3489809

È possibile implementare tale funzionalità se si crea la propria applicazione di avvio automatico.

EDIT: Anche se non è possibile passare i parametri al vostro programma di avvio automatico tramite linea di comando, si può ancora raccogliere le informazioni nel vostro programma di avvio automatico vari modi:

es: Impostazione di una variabile

<Variable Name="PARAM1" Value="SomeValue" Persisted="yes" Type="string" /> 

es: Cercando registro

<util:RegistrySearch Root="HKLM" Key="Software\SomeProduct" Value="SomeKey" Variable="PARAM1" Result="value"/> 
+0

Grazie. La conferma che ciò non può essere fatto è utile. Ho postato la stessa domanda sulla mailing list di wix-user e ho ottenuto la stessa risposta. –

32

Questo ora è stato implementato ed è disponibile al momento del rilascio Wix 3.6 RC il 21 maggio

Ecco l'idea generale di come funziona:

<Wix> 
<Bundle> 
    <Variable Name="CommandLineArg" bal:Overridable="yes"/> 
    <Chain> 
     <MsiPackage> 
     <MsiProperty Name="CommandLineArg" Value="[CommandLineArg]"/> 
     </MsiPackage> 
    </Chain> 
</Bundle> 
</Wix> 

Devi fare una variabile bundle che è override nella riga di comando e quindi passare tale variabile per il vostro MSI.

+0

Questo non funziona. – Isaiah4110

+0

Ora è lavoro! Grazie [utente1513304] (http://stackoverflow.com/users/1513304/user1513304). – Dimiano

+0

Da dove viene risolto lo spazio dei nomi "bal"? VS inserisce l'attributo xmlns: bal = "" quando digito bal: Overridable = "yes". – grwww

Problemi correlati