2008-10-29 10 views
28

Questa potrebbe essere una domanda ingenua. Devo modificare manualmente un file .WXS per far sì che supporti le funzioni di selezione dalla riga di comando.WIX: Come selezionare le funzionalità dalla riga di comando

Ad esempio, ci sono 3 funzioni nel file .WXS.

<Feature Id="AllFeature" Level='1'> 

    <Feature Id="Feature1" Level='1'> </Feature> 

    <Feature Id="Feature2" Level='1'> </Feature> 

    <Feature Id="Feature3" Level='1'> </Feature> 

</Feature> 

Ora, desidero selezionare le funzioni dalla riga di comando. Supponi, se digito "msiexec/i install.msi FEATURE = A", allora "Feature1" e "Feature2" sono installati; se scrivo "msiexec/i install.msi FEATURE = B", allora "Feature1" e "Feature3" sono installati. In questo caso, "A" esegue il mapping delle feature 1 e 2; "B" esegue le mappe per le funzionalità 1 e 3.

Come eseguire questa operazione in WIX?

risposta

29

cambierei Feature1, Feature2 e Caratteristiche3 a componenti, quindi sarebbe dichiarare qualcosa di simile:

<Feature Id="FEATUREA" Title="Super" Level="1" > 
    <ComponentRef Id="Component1" /> 
    <ComponentRef Id="Component2" /> 
</Feature> 

<Feature Id="FEATUREB" Title="Super1" Level="1" > 
    <ComponentRef Id="Component1" /> 
    <ComponentRef Id="Component3"/> 
</Feature> 

quindi installare sia FeatureA o FeatureB

msiexec /i install.msi ADDLOCAL=[FEATUREA | FEATUREB] 
44

La risposta accettata menziona già la proprietà ADDLOCAL, ma sembra implicare che è possibile selezionare solo una funzione. Si può effettivamente selezionare più caratteristiche separandoli da virgole in questo modo:

msiexec /i install.msi ADDLOCAL=Feature1,Feature2 

o

msiexec /i install.msi ADDLOCAL=Feature2,Feature3 

Un altro suggerimento: si può scoprire questi nomi di funzionalità aprendo il msi con orca. Questo è molto utile quando si desidera utilizzare questi trucchi per creare un bootstrapper che installa determinate funzionalità dei pacchetti MSI di terze parti.

+0

Il comando msiexec che ho messo è stato per la domanda posta, ma sono d'accordo che si può avere più funzioni dalla riga di comando – CheGueVerra

+0

Grazie, per aver ricordato l'utilità Orca. –

+1

citerò un programma di utilità migliore: invece It (http://www.instedit.com/) che è gratuito per i casi d'uso più comuni –

Problemi correlati