1

我想根据用户选择创建 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" />
4

1 回答 1

2

在追求更复杂的设置逻辑之前,请考虑安装具有相同设置的多个软件的危险,如此stackoverflow 答案中所述。

对于不是“一次性交付”的产品,出于可维护性质量保证本地化以及一些概念技术原因,拆分设置几乎总是更好。尤其是服务器和客户端产品可能有完全不同的升级计划。

或许也可以看看this question,看看使用Wix的Burn启动器编写更智能的启动逻辑,或者你自己的EXE启动器

尽管您的要求看起来相当简单,但如果您在我看来有高级要求,那么使用 MSI 的内置 GUI 几乎是没有希望的。它很复杂,但不是很灵活。特别是缺乏对事件和对话更新的控制非常令人沮丧的。

于 2014-08-05T12:23:45.763 回答