【问题标题】:Ordering the execution of WiX SetProperty actions订购 WiX SetProperty 操作的执行
【发布时间】:2009-11-28 00:40:27
【问题描述】:

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

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

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

由于在这种情况下WiX 没有定义属性来设置自定义操作名称,所以我没有在 BeforeAfter 中使用的名称> 属性。

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

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

【问题讨论】:

    标签: wix windows-installer


    【解决方案1】:

    您还可以使用 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!" />
    

    【讨论】:

    • 奇怪,在我的问题中(2009 年发布)我说没有这样的属性来设置名称。要么我错过了它,要么从那时起它被添加到 wix 3 版本之一中。感谢您的更新!
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-05
      • 2012-12-08
      • 2011-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多