背景:
使用NSIS打包程序,在卸载软件时候,需要先执行xxx.exe,而这个exe牵扯到很多依赖和文件。
如果直接这样写:
Section Uninstall
Exec "$INSTDIR\xxx.exe"
.......
Delete "$INSTDIR\libEGL.dll"
Delete "$INSTDIR\libGLESV2.dll"
......
SetAutoClose true
SectionEnd
使用Exec执行xxx.exe,会出现一个问题,因为这段代码顺序执行,所以那些依赖(aaa.dll)都被删除了,然后xxx.exe就执行不了。
解决方法:
Section Uninstall
ExecWait "$INSTDIR\xxx.exe"
.......
Delete "$INSTDIR\libEGL.dll"
Delete "$INSTDIR\libGLESV2.dll"
......
SetAutoClose true
SectionEnd
这样写的话,会阻塞在xxx.exe,直到xxx.exe运行结束后,继续顺序执行。