我正在创建一个包含两个功能的安装程序:A和B.当安装A和B时,我想隐式安装第三个功能:C。
要理解为什么我要这样做,A和B是不相关的组件,C是连接A和B的“粘合”功能。由于A和B实际上是很多可选组件,我想隐藏来自用户的这种复杂性,只要在选择A和B时安装C组件。
我想我可以使用Condition
元素来执行此操作,但我的天真方法((&A=3) AND (&B=3)
)不起作用。什么是最直接的解决方案?
答案 0 :(得分:2)
MSI并不支持这一点。我建议采用以下几种方法之一。
选项1 - 功能C的所有组件也属于功能A和B.
选项2-让功能C成为功能A和B的父功能。必须安装C才能安装子功能A或B.
选项3-将功能A B和C作为兄弟姐妹并使用自定义操作来强制执行业务规则,如果选择A或B,则必须安装C。
如果你真的想要隐藏C的存在,我个人会选择选项2.#1。这取决于你的情况。选项3适用于更复杂的场景,而且不太纯粹。