Ah.. more questions from me.

So.. I've got a CA that's executing that requires a reboot upon successful completion. I am calling ForceReboot immediately after the CA is working just fine. Running the MSI does prompt the user for a reboot after the CA is executed.

When I select "No" (to restart later manually), the installation completes up to the finish dialog box.

I ran the MSI again to see how it would behave, this time it ran to completion without executing the CA (the CA checks for a condition and will only run if it is true). But because I had not restarted the computer, I expected the installation to actually realize that the previous installation had not completed fully (because the restarted was put off for laters) and complain about it.

If this is the natural behavor of MSIs, how would accomplish what I'm describing? And as a side note, is there a reference for what properties are affected by calling the standard actions? As well as what are the typical values for the builtin properties (e.g. REMOVE property can = "ALL", "Complete".. etc.)?
0 Comments   [ + ] Show Comments

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.

Answers

0
As usual, there are a limited set of circumstances which actually require a reboot. Most happen because the set-up author is too lazy to work out why his/her install doesn't work without one.

As for why your MSI doesn't complain, why would it? You haven't told it that it should check for a pending reboot. If you want that behaviour, you need to build it in. I'm racking my brains trying to remember which registry key/value is used by WI to indicate that an installation is in progress, the sort where, for example, a reboot is initiated after, say, an uninstall of a previous version...
Answered 02/11/2009 by: VBScab
Red Belt

Please log in to comment
0
Ian,

If I twist your brain would you then remember the key below? [;)]
HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\InProgress
Answered 02/11/2009 by: AngelD
Red Belt

Please log in to comment
0
I knew someone would help me out. Nice one, Kim.
Answered 02/11/2009 by: VBScab
Red Belt

Please log in to comment
0
Thank you for the direction. This is a MS component that is getting installed which requires a reboot. Another component which depends on will also be installed by the MSI. So, how do I force an error condition in the MSI, i.e. assign the "Deafault" registry value in the Inprogress key to a property, if that property is not null, "fail" the installation. Is this typically done with a Terminate Installation CA?
Answered 02/11/2009 by: jayteeo
Purple Belt

Please log in to comment
0
http://itninja.com/question/help-with-msi-1311

You could simplify things enormously by checking if the component was updated. Presumably, as a reboot is required, it's an EXE or DLL and will therefore have version information in, which can be tested. Use AppSearch for that and assign a suitably-named property with a value. If the required version isn't present, the property will be empty, which you will test with a LaunchCondition.

NOTE:
If you are using Wise, you'll find that the default templates (still) have the AppSearch action appearing AFTER the LaunchCondition action. Sub-optimal...
Answered 02/11/2009 by: VBScab
Red Belt

Please log in to comment
0
I'll try the component approach which raises two more questions:

1. I ran my MSI and click "No" to on the ForceReboot prompt then run the MSI again, I don't encounter an Installer Error 1500 rather the installation completets. Why isn't the Installer Error being thrown?

2. When an install resumes, does it run from the beginning of the Installation Sequence or does it determine where in the install sequence it stopped?
Answered 02/11/2009 by: jayteeo
Purple Belt

Please log in to comment
0
I agree. Just a for instance...Adobe Acrobat Pro had some patches. If you installed adobe, then those patches, THEN rebooted, THEN had the user logon, and use Pro it self repaired and then would prompt for ANOTHER REBOOT. Which was really totally stupid, so I changed the package so that it updated with /fomus or some sh** like that, and it only needed one reboot. So you can engineer around reboots provided the app works correctly without it.
Answered 02/11/2009 by: aogilmor
Ninth Degree Black Belt

Please log in to comment
0
Why isn't the Installer Error being thrown?If the reboot is at the end of the installation sequence, as far as the WI engine is concerned, the install is complete and therefore won't write the 'InProgress' key.

When an install resumes, does it run from the beginning of the Installation Sequence or does it determine where in the install sequence it stopped? Installs will always run from the beginning, because the engine cannot know what might have happened between the instances being run. For example, an install could be halfway through, does a reboot and, before the MSI is re-executed, the user might delete the target folder. If the install got to a point after InstallFiles and then only ran from there, the files may not be re-installed (let's ignore self-healing/repair for now, shall we?) This is one reason why you'll see conditions like 'If Installed' on actions.
Answered 02/12/2009 by: VBScab
Red Belt

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