1

所以..我有这个 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]是绝对文件路径或“未设置”,我想知道是否有任何特殊原因导致此行为发生。

但是,当然,我对抑制或修复此操作的任何可能方式更感兴趣。

4

1 回答 1

2

这只CustomAction设置了一个属性。它不可能显示错误消息。如果没有定义任何属性,它们只会解析为空白。必须有其他东西显示错误消息。

但是,由于您使用了特别命名的CustomActionData. 不过,这不是完全的使用方式CustomActionData。相反,该属性Property应设置为IdCustomAction要传递数据的属性。假设使用该属性值的自定义操作类似于:

<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值。您可以在此处阅读更多相关信息:http: //msdn.microsoft.com/en-US/library/2w2fhwzz (v=VS.80).aspx<some other data that's formatted exactly the same> /webconftmploc="value_of_WEBCONFIGIMPLOC_goes_here"CustomActionData

于 2013-03-27T20:31:40.447 回答