所以..我有这个CA
<CustomAction Id="InstallSetProp" Property="CustomActionData" Value="<some other data that's formatted exactly the same> /webconftmploc="[WEBCONFIGTMPLOC]"" />
但是,当调用此CA时,会显示一个消息框,说明“错误获取属性”,这是伪造的,因为该属性已正确设置并可在以后访问。 (除了弄乱我完全自动化安装的尝试之外什么都不做)我正在通过一个引导程序运行.msi来切换/qr
以帮助解决这个问题。
删除/webconftmploc="[WEBCONFIGTMPLOC]"
时未显示消息框错误,因为记录[WEBCONFIGTMPLOC]
是绝对文件路径或“未设置”,我想知道是否有任何特殊原因导致此错误行为可能会发生。
然而,当然,我对任何可能的方法来抑制或修复这个动作更感兴趣。
答案 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="[WEBCONFIGTMPLOC]"" />
。 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