我希望根据用户选择创建Wix安装程序,客户端,服务器或两者。
我的问题是当用户选择服务器时,如何限制安装客户端(因为它具有Level = 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" />
答案 0 :(得分:2)
在使用更复杂的设置逻辑之前,请考虑使用this stackoverflow answer中所述的使用相同设置安装多个软件的危险。
对于不是“一次性投放”的产品,将可维护性,质量保证,本地化<的设置分开几乎总是更好/ strong>以及几个概念和技术原因。特别是可能具有不同升级时间表的服务器和客户端产品。
也许还可以查看this question并查看使用 Wix的Burn启动器来编写更智能的启动逻辑,或者您自己的EXE启动器。
虽然您的要求看起来相当简单,但如果您在我看来有高级要求,那么使用MSI的内置GUI几乎是没有希望的。它很复杂,但不是很灵活。特别是缺乏控制 事件和对话框更新非常令人沮丧。