获取属性时出错

时间:2013-03-27 17:23:36

标签: wix wix2

所以..我有这个CA

<CustomAction Id="InstallSetProp" Property="CustomActionData" Value="<some other data that's formatted exactly the same> /webconftmploc=&quot;[WEBCONFIGTMPLOC]&quot;" />

但是,当调用此CA时,会显示一个消息框,说明“错误获取属性”,这是伪造的,因为该属性已正确设置并可在以后访问。 (除了弄乱我完全自动化安装的尝试之外什么都不做)我正在通过一个引导程序运行.msi来切换/qr以帮助解决这个问题。

删除/webconftmploc=&quot;[WEBCONFIGTMPLOC]&quot;时未显示消息框错误,因为记录[WEBCONFIGTMPLOC]是绝对文件路径或“未设置”,我想知道是否有任何特殊原因导致此错误行为可能会发生。

然而,当然,我对任何可能的方法来抑制或修复这个动作更感兴趣。

1 个答案:

答案 0 :(得分:2)

CustomAction仅设置属性。它不可能显示错误消息。如果未定义任何属性,则只会解析为空白。其他一些必须显示错误消息。

但是,由于您使用了特别命名的CustomActionData,您似乎正在尝试将数据传递到延迟的自定义操作。但这并不是使用CustomActionData的方式。相反,Property属性应设置为您要传递数据Id的{​​{1}} 。假设使用该属性值的自定义操作类似于:

CustomAction

要传递您尝试发送的字符串,您可以写:

<CustomAction Id='MyDeferredCustomAction' Execute='deferred' ... />

请注意,第二个自定义操作是设置一个与延迟自定义操作同名的属性:<CustomAction Id="InstallSetProp" Property="MyDeferredCustomAction" Value="<some other data that's formatted exactly the same> /webconftmploc=&quot;[WEBCONFIGTMPLOC]&quot;" /> MyDeferredCustomAction可以通过神奇的MyDeferredCustomAction属性访问值<some other data that's formatted exactly the same> /webconftmploc="value_of_WEBCONFIGIMPLOC_goes_here"。您可以在此处详细了解:http://msdn.microsoft.com/en-US/library/2w2fhwzz(v=VS.80).aspx