We get hit constantly in usability sessions for not having an indication of overall install progress with our Windows MSI-based installation. All of the tutorials and information I can find online appear to pertain to per-step progress indications, such as updating a progress bar at different points of a specific custom action. I'm having trouble locating information about displaying progress of the overall MSI.

As a first attempt, I used the following logic. I used SQL queries to find a list of all entries in the InstallExecuteSequence table. I organized the list by sequence number. Then, for every MSI message of type INSTALLMESSAGE_ACTIONSTART, I capture the name of the action that is starting. I then look up the position in my sorted list. That becomes the position of my global progress bar. I realize this is a linear approach that doesn't take into account the different lengths of particular steps, but it's a start and it's much better than what we have today.

The trouble with this method is that the MSI jumps around a bit. It doesn't follow the sequence as I would hope. Immediate-mode actions to deferred-mode actions to commit-mode and then back to immediate-mode. I can't rely on the Sequence column of the InstallExecuteSequence table by itself, it's a bit more involved than that.

Does anyone know if a running MSI advertises/broadcasts its current progress position? My understanding of MSI is that very early on, an internal script is created with the sequence of steps that will be run. Do I have any way of tapping into that? A global progress bar is so much more beneficial to users than a per-step progress bar - I have trouble believing that there is no built-in hook for reporting this.

Any information would be appreciated.
0 Comments   [ + ] Show Comments


Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.


maybe have a look here
Answered 02/18/2011 by: pjgeutjens
Red Belt

Please log in to comment
Thanks, pjgeutjens. Yes, I am already using an external UI handler. That is how I am able to tie the INSTALLMESSAGE_ACTIONSTART messages to an update of my global progress bar.

It just seems like I'd be reinventing the wheel to make this work, and I can't believe that I'm the only one who has attempted to do this.

Answered 02/18/2011 by: anonymous_msiguy
Yellow Belt

Please log in to comment
Answer this question or Comment on this question for clarity