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

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

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

Я попробовал использовать Condition for Component, но не повезло.

<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

Обратите внимание на опасность установки нескольких программ с той же настройкой, как описано в fooobar.com/info/48037/..., прежде чем преследуя более сложную логику установки.

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

Возможно, вы также можете взглянуть на этот вопрос и посмотреть, как использовать Wix Burn launcher, чтобы писать более интеллектуальные запускать логику или собственную программу запуска EXE.

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