2011-06-14 91 views
2

我们使用Wix为我们的软件构建msi。我们有一些组件(插件)被实现到目标机器上。插件不同,从一个客户端到另一个。我们希望能够做的是创建一个标准版本并修改msi包中的功能列表。有没有办法从自定义动作中动态更改功能列表? (例如,从自定义操作中读取可用插件并相应地向msi功能列表中添加一些条目)?Wix:动态添加功能

任何意见,建议,想法都非常感激。

+0

是否要包含MSI中的所有功能并有条件地安装它们?或者您想在构建时动态地将功能包含在MSI中? – 2011-06-14 15:07:56

+0

在构建MSI时,我不知道要包含什么内容。我想将插件放到MSI包之外的文件夹中,然后使用CA来读取存储在此文件夹中的插件的详细信息(例如名称,说明,相关文件等),并将它们添加到该功能中列表在安装时。所以,我不会为不同的客户做一个新的构建。 希望这是有道理的。 非常感谢。 – Dan 2011-06-14 16:02:07

+0

你没有真正回答我的问题。你是否想要在MSI中包含所有功能并在安装过程中对其进行调整?像主设置文件一样。或者你想要包只包含某些功能? – 2011-06-14 19:17:24

回答

3

我已经完成了一项技巧,您可以使用外部CAB(每个功能1个)构建MSI,然后使用自定义操作来验证CAB是否存在。如果它们不存在,则隐藏该功能。通过这种方式,您可以构建一次安装程序,然后将其发送给具有不同功能集的客户。

顺便说一句,InstallAware支持这个故事本身我相信。

+0

非常感谢Christopher Painter,我认为这就是我能做的。 – Dan 2011-06-16 10:01:58