订购执行WiX SetProperty操作

时间:2009-11-28 00:40:27

标签: wix windows-installer

我有一系列相互依赖的SetProperty行动。这是一个简化的例子:

<SetProperty Id="A" Before="AppSearch" Value="Hello" />
<SetProperty Id="B" Before="AppSearch" Value="[A] world!" />

在这种情况下,需要在属性B之前设置属性A,以便B的值变为“Hello world!”。

由于在这种情况下WiX没有定义设置自定义操作名称的属性,因此我没有在之前 After <中使用的名称/ strong> attributes。

注意到这些操作的执行顺序与属性名称的字母顺序相匹配,但这感觉就像我不应该依赖的实现细节。

如何干净地执行SetProperty自定义操作的顺序?

2 个答案:

答案 0 :(得分:10)

您还可以使用SetProperty元素的“Action”属性来确定自定义操作的名称。如果您希望在两个不同的SetProperty操作中设置相同的属性,因为它删除了不明确的“SetXXX”操作名称,这就变得很重要。

例如:

<SetProperty Id="A" Action="MyFirstAction" Before="AppSearch" Value="Hello" />
<SetProperty Id="B" Action="MySecondAction" After="MyFirstAction" Value="[A] world!" />
<SetProperty Id="A" Action="MyThirdAction" After ="MySecondAction" Value="Goodbye cruel world!" />

答案 1 :(得分:4)

我使用orca来发现为自定义操作生成的名称。结果是SetASetB。以下是我想要的:

 <SetProperty Id="A" Before="AppSearch" Value="Hello" />
 <SetProperty Id="B" After="SetA" Value="[A] world!" />