2
我需要在安装过程中重新启动Windows资源管理器进程。目前我们强制用户重新启动以确保Explorer进程真的重新启动,但我想要更灵活一些。WIX:根据先前执行的自定义操作的成功运行自定义操作
我有一个restartexplorer可执行文件,我可以在安装过程中调用。我想要做的就是调用restartexplorer可执行文件,并且仅当重新启动浏览器自定义操作返回错误代码时才使用ScheduleReboot。
我可能会定义是这样的:
<CustomAction Id='RestartProperty' Property='QtExecCmdLine'
Value='"[INSTALLDIR]RestartExplorer.exe"' />
<CustomAction Id='Restart' BinaryKey='WixCA' DllEntry='CAQuietExec' Execute="immediate" Return="check" />
然后InstallExecuteSequence会是这样的:
<InstallExecuteSequence>
...
<Custom Action="RestartProperty" Before="Restart">PREVIOUSVERSIONSINSTALLED</Custom>
<Custom Action="Restart" After="SomeAction">PREVIOUSVERSIONSINSTALLED</Custom>
<ScheduleReboot After="Restart"><![CDATA[(NOT Installed) AND (SomeErrorValue > 0)]]></ScheduleReboot>
</InstallExecuteSequence>
问题是我如何从错误代码以前的自定义操作?我可以使用QtExecCmdLine并且仍然能够检查错误代码,还是必须直接从自定义操作标记中获取可执行文件?这必须在Windows XP SP3和更新的版本上工作,我更喜欢一个解决方案,它不需要在操作系统版本之间有所不同。
可能的解决办法。如果我使用内置的QtExecCmdLine不可能? – tronda 2011-06-08 12:00:14
老实说,我没有使用QtExecCmdLine。但我相信它能够运行VB脚本以及exe – gtikok 2011-06-08 12:19:22