我正在处理的应用程序的先前版本(连同它的安装程序)是由其他人编写的。我一直很难让更新功能正常工作,所以我想在安装之前卸载以前的版本,但在我确定安装会继续进行之后。
我显然做错了什么。我想从安装程序执行以下命令行,但在安装开始之前。当我运行安装程序时,应用程序会安装,但我的命令行没有执行。任何帮助,将不胜感激。
我要执行的命令行是:
start /wait MsiExec.exe /quiet /x{MyGuid-0F4A-4F53-8639-0BEE6018EAD6}
我的 WiX XML 的相关部分:
<Property Id="QtExecCmdLine" Value="start /wait MsiExec.exe /x{MyGuid-0F4A-4F53-8639-0BEE6018EAD6}"/>
<CustomAction Id="UninstallOldVersion" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="immediate" Return="ignore"/>
<InstallExecuteSequence>
<Custom Action="UninstallOldVersion" Before="InstallInitialize"/>
</InstallExecuteSequence>
如果我从提示符执行命令,该命令将按预期工作。此外,在安装程序的编译或执行过程中,我没有收到任何错误或警告。