Pergunta

Esta pode ser uma pergunta ingênua. Eu tenho que editar manualmente um arquivo .WXS para torná-lo apoiar selecionar os recursos de linha de comando.

Por exemplo, existem 3 características em arquivo .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>

Agora, eu quero selecionar os recursos de linha de comando. Digamos, se eu digitar "msiexec / i INSTALL.MSI feature = A", então "Feature1" e "Feature2" está instalado; se eu digitar "msiexec / i INSTALL.MSI feature = B", então "Feature1" e "Feature3" está instalado. Neste caso, "A" mapeia para Feature 1 e 2; "B" mapeia para Feature 1 e 3.

Como fazer isso em WIX?

Foi útil?

Solução

Eu mudaria Feature1, Feature2 e Feature3 de Componentes, em seguida, iria declarar algo como isto:

<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>

Depois de instalar ou o FeatureA ou FeatureB

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

Outras dicas

A resposta aceita já menciona a propriedade ADDLOCAL, mas parece implicar que você pode selecionar apenas um recurso. Você pode realmente selecionar várias características, separando-os por vírgulas como esta:

msiexec /i install.msi ADDLOCAL=Feature1,Feature2

ou

msiexec /i install.msi ADDLOCAL=Feature2,Feature3

Outra dica: você pode descobrir esses nomes de recursos, abrindo o msi com orca . Isto é muito útil quando você quiser usar esses truques para criar um bootstrapper que instala certas características de terceiros pacotes MSI.

Há um número de propriedades que podem controlar os instalar estados de Recursos. Confira esta documentação MSI SDK e as ligações a partir dele: http: //msdn.microsoft.com/en-us/library/aa367536(VS.85).aspx

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top