我有一个WiX安装程序,它在c ++ dll中运行extern函数作为自定义操作(Execute="deferred"
)。我通过设置属性将所需的属性值传递给它,该属性的名称与CustomAction的ID相同( custActID 在下面的示例中)。
<CustomAction Id="SetOutputProperty" Property="custActID"
Value="ONE=[ONE];TWO=[TWO];THREE=[THREE];" />
<CustomAction Id="custActID"
BinaryKey="BIN_NWCONFIGDLL"
DllEntry="dllEntryFunction"
Impersonate="no"
Execute="deferred"
Return="check"
HideTarget='yes' />
然后我可以使用:
获取c ++ dll中的所有数据 MsiGetProperty(hInstall, "CustomActionData")
我的问题:是否可以通过此dll在WIX中设置一些属性?
所以:
我有这个问题,请在Wix中说THREE
。我将它传递给dll。
Dll将从用户那里获取一些数据(如果他们正确的话,以某种特殊方式验证它们)并最终更新此rproperty THREE
。我想把它传回给WIX。
答案 0 :(得分:2)
不,延迟的自定义操作无法设置属性。运行延迟自定义操作时,已设置自定义操作数据,因此自定义操作不会影响传递给以后自定义操作的数据。