Wix 安装程序 - 将属性值复制到另一个属性

Wix installer - copy attribute value to another attribute

我想做的是复制单个 属性 的值,并将其作为另一个 属性 的值。这可以用 Wix 实现吗?

<Property Id="PROP1" Value="default"  Secure="yes"/>

我希望 PROP2 在 UI 序列中的某个位置具有相同的值。

您可以使用自定义操作来完成它。将操作定义为

<CustomAction Id="SetMyProperty" Execute="immediate" Property="PROP2" Value="[PROP1]" />

然后在 <InstallUISequence><InstallExecuteSequence> 中调用它,当你需要它设置时,像

<Custom Action="SetMyProperty" After="FileCost"></Custom>

尽管@Mischo5500 的回答是正确的,但有一种更优雅的方法可以实现同样的效果。您可以使用专门为此目的设计的特殊元素 <SetProperty>

使用它的好处是:

  • 一行WiX代码
  • 默认情况下它被正确安排到两个序列中
  • 元素的名称更自然且一目了然

因此,上面的例子可以转化为:

<SetProperty Id="PROP2" Value="[PROP1]" After="FileCost" />