View Full Version : Setup flow: interesting questions

12-09-2003, 11:50 AM

is there a diagram (or textual discription) of the flow of when setup is run? what is run in what order? for example, is the script run before merge modules?

for example, you have the install script, and if there's any procedures in there, like OnBegin, OnMove, OnEnd etc. those are run in that order etc. There's also event driven ones and thats fine too.

however, outside of InstallScript, there's so much more going on. Like merge Modules, Custom Actions, Sequences, SEARCHES etc. etc.

when are these run? and in what order? is ONBEGIN the very first thing IS runs? I dont think so because I put a msgbox in the onbegin. Then, I put a merge module that tried to install a "bad" instance. I got the "bad instance" messgae before I got the
"in onbegin procedure"

this tells me there's other stuff that goes on BEFORE install Scripts 'OnBegin' is run. does anyone know what?



12-09-2003, 12:57 PM
Look in the box that InstallShield came in, there is a poster that shows the flow chart of a standard installation.
It is too complex of a flow to describe online.

I am not sure if it is available online, but it does exists.

12-09-2003, 03:27 PM
hmm, didnt find one in the box. also did a search on the web ...

basically just need to know whats run before installscrips is run. installscript doesnt appear in the sequences view so cant tell.

I think merge modules are TESTED bef onbegin, and I can see that appsearch and conidtions are checked ... but what else?

thanks a bunch


12-09-2003, 04:52 PM
Here is a quick break down of a sequence:

1)InstallShield Bootstrap
2)InstallShield InstallScript Engine
3)MSI Engine
4) Finalization

During the first part, it is basically setup.exe starting up
Part 2: Idriver.exe with

Those are Installscript Events (E) and functions (f)

- OnBegin (E)
- GetSystemInfo (f)
- RegDBKeyExist (f)

- OnAppSearch (E)
- RegDBKeyExist (f)
- RegDBGetKeyValueEx (f)
- FindAllFiles (f)
- VerGetFileVersion (f)
- OnFirstUI (E)
- sdWelcome (f)
- sdCustomerInformation (f)
- sdAskDestPath (f)
- SetupType (f)
- sdFeatureTree (f)
- sdStartCopy (f)

Part 3: msiexec.exe
- OnGeneratingScript (E)
- MSISetProperty (f)
- OnGeneratedMSIScript (E)
- OnMoving (E)

-Feature1_installing (E)
-... and so on

- OnInstallFilesActionBefore
- OnInstallFilesActionAfter

According to the information on the poster Merge modules are part of features (makes sense). I would guess they are taken into account between OnFirstUI and OnGeneratingScript.
You can indeed have the user select features, in which case modules associated with unselected ones will not be triggered.

You are correct, there is a ton of stuff going on before and after. You can see it when logging an installation as well.

12-09-2003, 05:43 PM
thanks man! seems like you put time in it. appreciate that!

03-16-2005, 09:41 AM

This thread has been inactive for long but i just found it and have a question about the flow:

- RegDBKeyExist (f)
- OnAppSearch (E)

Does the execution of RegDBKeyExist determine whether or not to execute OnAppSearch?