Bingung? sama. haha.
Intinya ada aplikasi lama yang di-reborn, tapi sayangnya sourcenya nggak lengkap apalagi untuk instalasi dependensinya. Untung masih ada installer lama dan source aplikasi PHP-nya. Setelah aplikasi PHP selesai dikerjakan oleh kolega, yang diperlukan untuk finishing adalah membuat installer/updater. Tentu saja client bakal bingung kalau harus install aplikasi lama, kemudian install update ke-2 lalu install update yang paling baru lagi. Cukup rumit dan menjengkelkan.
Yowes, berhubung aplikasi ini installernya dibikin pake innoSetup jadi cukup beberapa kali googling ketemu dengan yang namanya PrepareToInstall
dan beberapa fungsi lainnya. Karena PrepareToInstall
masuk dengan logic yang saya perlukan, jadi menginstall file lama, lalu ditumpuk dengan yang baru. Kelemahan PrepareToInstall
dia mengharuskan ekstraksi data ke temp
yang memakan waktu tergantung ukuran filenya. Pengennya sih bisa ngasih loader gitu biar lebih cihuy, tapi udah keburu mepet karena sorenya mau diminta sama kastamer. Ini kodenya siapa tau ada yang mau meng-improve.
[code] function PrepareToInstall(var NeedsRestart: Boolean): String; var ResultCode: Integer; begin ExtractTemporaryFile('APLIKASI-LAMA.exe'); if Exec(ExpandConstant('{tmp}\APLIKASI-LAMA.exe'), 'quit', '', SW_HIDE, ewWaitUntilTerminated, ResultCode) then begin msgbox('Berhasil Menginstall Update 01-01-2014', mbInformation, MB_OK); end else begin msgbox('Gagal Menginstall Update 01-01-2014 : ' + SysErrorMessage(ResultCode), mbInformation, MB_OK); end; ExtractTemporaryFile('Update-21-04-2014.exe'); if Exec(ExpandConstant('{tmp}\Update-21-04-2014.exe'), 'quit', '', SW_HIDE, ewWaitUntilTerminated, ResultCode) then begin msgbox('Berhasil Menginstall Update 21-04-2014', mbInformation, MB_OK); end else begin msgbox('Gagal Menginstall Update-21-04-2014 : ' + SysErrorMessage(ResultCode), mbInformation, MB_OK); end; end;
Kalau untuk menginstall dependensi yang nggak harus ada dulu, seperti dotNetFramework pakai kode standar aja dengan [run]
. Google cukup membantu anda :p