WIX: как выбрать функции из командной строки - PullRequest
31 голосов
/ 29 октября 2008

Это может быть наивный вопрос. Мне нужно вручную отредактировать файл .WXS, чтобы он поддерживал выбор функций из командной строки.

Например, в файле .WXS есть 3 функции.

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

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

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

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

</Feature>

Теперь я хочу выбрать функции из командной строки. Скажем, если я наберу "msiexec / i install.msi FEATURE = A", то "Feature1" и "Feature2" будут установлены; если я наберу «msiexec / i install.msi FEATURE = B», то будут установлены «Feature1» и «Feature3». В этом случае «А» сопоставляется с характеристикой 1 и 2; «B» соответствует характеристикам 1 и 3.

Как это сделать в WIX?

Ответы [ 3 ]

50 голосов
/ 21 января 2009

В принятом ответе уже упоминается свойство ADDLOCAL, но, похоже, подразумевается, что вы можете выбрать только одну функцию. Вы можете выбрать несколько функций, разделив их запятыми, например:

msiexec /i install.msi ADDLOCAL=Feature1,Feature2

или

msiexec /i install.msi ADDLOCAL=Feature2,Feature3

Еще один совет: вы можете узнать названия этих функций, открыв msi с помощью orca . Это очень полезно, когда вы хотите использовать эти приемы для создания загрузчика, который устанавливает определенные функции сторонних MSI-пакетов.

31 голосов
/ 29 октября 2008

Я бы изменил Feature1, Feature2 и Feature3 на Компоненты, затем объявил бы что-то вроде этого:

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

Затем установить FeatureA или FeatureB

msiexec /i install.msi ADDLOCAL=[FEATUREA | FEATUREB]
10 голосов
/ 29 октября 2008

Существует ряд свойств, которые могут управлять состояниями установки компонентов. Ознакомьтесь с документацией MSI SDK и ссылками на нее: http://msdn.microsoft.com/en-us/library/aa367536(VS.85).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...