我有两个运行两个EXE文件的自定义操作。但是它们会在同一时间被提取出来,并且这些进程在安装过程中会相互阻塞。我如何一个接一个地安排它们?
<CustomAction Id="StartAppOnExit1"
FileKey="UMIEXE"
ExeCommand=""
Execute="deferred"
Return="asyncNoWait"
Impersonate="no" />
<InstallExecuteSequence>
<Custom Action="StartAppOnExit1"
Before="InstallFinalize">$UMIEXE=3</Custom>
</InstallExecuteSequence>
<CustomAction Id="StartAppOnExit2"
FileKey="Python"
ExeCommand=""
Execute="commit"
Return="check"
Impersonate="no" />
<InstallExecuteSequence>
<Custom Action ="StartAppOnExit2"
After="StartAppOnExit1" >$Python=3</Custom>
</InstallExecuteSequence>
这是我的代码,但我似乎收到了你所说的错误。
答案 0 :(得分:1)
在product.wxs中一个接一个地对它们进行排序,并且在自定义操作中有一个检查来验证exe是否已执行并仅在那里保存进程
<Custom Action="FirstCustomAction" After="InstallFinalize">NOT INSTALLED AND NOT REMOVE</Custom>
<Custom Action="SecondCustomAction" After="FirstCustomAction">NOT INSTALLED AND NOT REMOVE</Custom>
CustomAction中的
进程调用中WaitForExit()
。