Установка Wix, сервер, клиент или оба

Я хочу создать установщик Wix для установки клиента, сервера или обоих на основе выбора пользователя.

Мой вопрос: как я могу ограничить установку клиента, когда пользователь выбирает сервер (он устанавливается, так как имеет уровень =1). Я настроил WixUI_Mondo.

Я пытался использовать условие для компонента, но не повезло.

<Feature Id="Client" Level="1">
    <ComponentRef Id="ClientMainExecutable" />
    <ComponentRef Id="ClientConfigurations" />
  </Feature>
  <Feature Id="Server" Level="3">
     <ComponentRef Id="ServerExecutable" />
     <ComponentRef Id="ServerConfigurations" />
  </Feature>
  <Feature Id="Both" Level="1000">
  </Feature>
</Feature>

<UIRef Id="myWixUI_Mondo" />

1 ответ

Решение

Пожалуйста, учтите опасность установки нескольких программ с одной и той же настройкой, как объяснено в этом ответе stackru, прежде чем следовать более сложной логике настройки.

Для продукта, который не является "единовременной доставкой", почти всегда лучше разделить настройки по удобству обслуживания, обеспечению качества, локализации и нескольким концептуальным и техническим причинам. Особенно серверные и клиентские продукты, которые могут иметь разные графики обновления.

Возможно, также взгляните на этот вопрос и посмотрите на использование средства запуска Wix Burn для написания более разумной логики запуска или вашего собственного средства запуска EXE.

Хотя ваши требования выглядят достаточно простыми, работать со встроенным графическим интерфейсом MSI практически безнадежно, если вы считаете, что у вас есть дополнительные требования. Это сложно, но не очень гибко. Особенно отсутствие контроля над событиями и обновлениями диалогов очень расстраивает.

Другие вопросы по тегам