我有一系列相互依赖的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
自定义操作的顺序?
答案 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来发现为自定义操作生成的名称。结果是SetA
和SetB
。以下是我想要的:
<SetProperty Id="A" Before="AppSearch" Value="Hello" />
<SetProperty Id="B" After="SetA" Value="[A] world!" />