2014-01-09 97 views
0

在我的安裝腳本中,我需要在安裝過程中執行2個應用程序,但只有在第一個應用程序完成時才需要執行第二個應用程序,該怎麼做?Inno安裝程序僅在完成第一個應用程序時執行第二個應用程序

+0

是的,我知道這一點,但如果我把: [運行] 文件名:「{tmp} \ app1.exe」;標誌:waituntilterminated; StatusMsg:「Instalando」;組件:CCCP 文件名:「{tmp} \ app2.exe」;標誌:waituntilterminated; StatusMsg:「Instalando」;組件:CCCP 這兩個應用程序在同一時間執行,我需要執行第一個應用程序,並在第一個應用程序完成後才執行第二個應用程序。 –

+1

這可能意味着app1.exe不是真正的進程,而只是一個解包器和某個其他進程的觸發器,當它觸發此進程時,它會終止允許運行app2.exe的東西。在這種情況下,您應該解壓app1.exe以獲取真正的安裝程序,該安裝程序將運行至安裝過程結束。 – RobeN

回答

0

不幸的是,我發現要做到這一點的唯一方法是創建一個.bat文件來控制執行順序。在[Run]段的ISS腳本調用i'm .bat文件正確地控制執行順序,.bat文件內容是:

echo [Init app1...] 
echo ATTENTION!!! Dont close this. 
echo ....... 
cd app1 
start app1.bat %2 %3 %4 %5 %6 %7 %8 %9 
pause 
if ERRORLEVEL 1 goto FailStart 
cd ..\.. 
echo [Init app2...] 
echo ...... 
echo ...... 
echo ATTENTION!!! Dont close this. 
echo ...... 
echo ...... 
cd app2 
start app2.bat %2 %3 %4 %5 %6 %7 %8 %9 
pause 
goto Leave 

:FailStart 
echo Error in installation proccess... %2 %3 %4 %5 %6 %7 %8 %9 
goto Leave 

:Leave 
echo Finished, press any key... 

這解決了這個問題現在。但這不是一個優雅的解決方案。 如果有人知道其他「方式」做到這一點,請發佈。

謝謝大家。

相關問題