Come selezionare le funzionalità dalla riga di comando
-
05-07-2019 - |
Domanda
Questa potrebbe essere una domanda ingenua. Devo modificare manualmente un file .WXS per supportarlo 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, voglio selezionare le funzionalità dalla riga di comando. Ad esempio, se digito " msiexec / i install.msi FEATURE = A " ;, quindi " Feature1 " e " Feature2 " è installato; se digito " msiexec / i install.msi FEATURE = B " ;, quindi " Feature1 " e " Feature3 " è installato. In questo caso, "A" si associa alle funzioni 1 e 2; & Quot; B " esegue il mapping alle funzioni 1 e 3.
Come realizzare ciò in WIX?
Soluzione
Vorrei cambiare Feature1, Feature2 e Feature3 in Components, quindi dichiarerei qualcosa del genere:
<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 FeatureA o FeatureB
msiexec /i install.msi ADDLOCAL=[FEATUREA | FEATUREB]
Altri suggerimenti
La risposta accettata menziona già la proprietà ADDLOCAL, ma sembra implicare che è possibile selezionare solo una funzione. Puoi effettivamente selezionare più funzionalità separandole con virgole come questa:
msiexec /i install.msi ADDLOCAL=Feature1,Feature2
o
msiexec /i install.msi ADDLOCAL=Feature2,Feature3
Un altro suggerimento: puoi scoprire questi nomi di funzionalità aprendo la msi con orca . Ciò è molto utile quando si desidera utilizzare questi trucchi per creare un bootstrapper che installa alcune funzionalità dei pacchetti msi di terze parti.
Esistono diverse proprietà che possono controllare gli stati di installazione delle funzionalità. Consulta questa documentazione dell'SDK MSI e i relativi collegamenti: http: //msdn.microsoft.com/en-us/library/aa367536(VS.85).aspx