如果失败了(而不是一般错误消息),如何让Wix CustomAction打印我选择的特定错误消息?
<CustomAction Id="XXX" Directory="INSTALLFOLDER" ExeCommand="SomeCommand" Return="check" Execute="deferred"/>
感谢。
答案 0 :(得分:2)
这有点令人困惑,因为你有一个exe自定义操作,为什么程序不能显示它的实际错误信息呢?如果exe不这样做,除了exe有许多退出代码告诉你究竟发生了什么之外,除了“exe失败”之外,获取有意义的消息并不容易。所以你的信息只会因为其他信息而“失败”。
如果这是您的代码,并且您想提供一个完全描述错误的特定错误消息,我鼓励使用Dll调用,C / C ++或带有DTF的托管代码C#。然后,您可以在C#/ DTF世界中使用Win32 API MsiProcessMessage()和等效的session.message。它具有以下优点:知道它何时是静默安装(并且不显示任何内容),确保消息在当前对话框(可能是进度对话框)之上,并且如果您正在创建消息,则将消息放入MSI日志中。所有这些显然都假定您的代码足够彻底,可以确切地说出失败的原因和原因,以便错误消息是有意义的。
答案 1 :(得分:0)
您可以创建一个新的自定义操作,无论您需要它做什么。这包括运行您的命令并使用您自己的格式准确记录您想要的各个部分。
http://blogs.msdn.com/b/jschaffe/archive/2012/10/23/creating-wix-custom-actions-in-c-and-passing-parameters.aspx - 创建WiX自定义操作。