如何在InstallExecuteSequence中重用CustomAction

时间:2015-11-16 18:53:42

标签: wix windows-installer

我有CustomAction修改带有键值的json文件。我想以与util:XmlFile类似的方式使用它。我想出的最好的是:

<InstallExecuteSequence>
  <Custom Action="PropertySetForModifyJson" After="CostFinalize" />
  <Custom Action="ModifyCentralJsonCustomAction" After="PropertySetForModifyJson" />
  <Custom Action="Property2SetForModifyJson" After="CostFinalize" />
  <Custom Action="ModifyCentralJsonCustomAction" After="Property2SetForModifyJson" />
</InstallExecuteSequence>

将操作设置为:

<CustomAction Id='ModifyCentralAppSettingsJsonCustomAction' BinaryKey="InstallerCustomActions" DllEntry="ModifyCentralJson" Execute='immediate' Return='check'/>

<CustomAction Id='PropertySetForModifyJson' Property="CustomActionData" Value="Key=foo;Value=bar;"/>

问题是我似乎无法重复使用DllEntry操作,因为它被标记为重复。有没有办法重用这个常见的入口点?或者可能是另一种解决方案?

1 个答案:

答案 0 :(得分:0)

自定义操作最多可以安排一次,但除了Id之外,您可以使用相同的自定义操作 - 这是导致重复错误的原因。通常,如果您有大量数据,则自定义表中的数据会驱动单个立即自定义操作,并根据需要调度多个延迟自定义操作的调度。