我可以确保组件安装顺序吗?

时间:2012-11-06 14:16:07

标签: wix installation components windows-installer

我正在考虑使用WiX安装程序实施数据库升级。因此,使用SqlScript元素的组件很少。但我不确定我是否可以依赖组件执行顺序。

WiX是否始终将组件添加到MSI组件表中,以便它们在片段中定义? Windows安装程序是否保证按组件表的顺序执行它们?

1 个答案:

答案 0 :(得分:2)

不,MSI不按任何给定顺序处理组件。这是非确定性的。但是,WiX提供的SQL脚本自定义操作会按给定顺序处理脚本。它由SqlScript @ Sequence属性决定。

当CustomActions评估它时,它将根据正在安装的组件决定需要执行哪些脚本。然后,它将根据Sequence属性对结果进行排序,并安排它进行安装。

我倾向于使用基于安装类别的100 200 300 400之类的东西。

100 - 创建空数据库

200 - 创建表

300 - 应用约束

400 - 加载数据

500 - 创建procs和触发器等对象

这个想法是你不需要对101和102进行微观管理,而只是将其视为安装阶段。