/build/static/layout/Breadcrumb_cap_w.png

MSI Prereq Checking - What's your take?

I recently had to package an application that has several different dependencies, namely .NET 2.0, MSXML4 and 6, and the C++ 2005 distributable. I needed to ensure that the installation failed if any of the prerequisites were not present on the PC at the time of install.

Since I'm using Wise Package Studio, it was easy to set the .NET 2.0 installation requirement with the "System Requirements" portion of the Installer Editor. For the remainder of the prereqs, I used a combination of system search (AppSearch, Signature tables) and the LaunchCondition table to build my launch conditions, which worked great. I also had to make sure that my AppSearch came before LaunchConditions in both the InstallExecuteSequence and InstallUISequence, so that the system search was done before the prereq checking. I also had to build a condition so that the LaunchConditions action would only be run if the product was not installed, because if any of the prereqs were removed while the application was still installed, any attempt to repair or remove the installation will fail citing the launch conditions.

To me, this outlines a pretty basic method of prequisite checking within the MSI.

I'm wondering if there are any better ways to accomplish prerequisite checking natively within the MSI, specifically with any custom actions that you all have used, or other methods. Since SystemSearch is pretty robust, I'm not sure there is, but figured I'd query my peers.

Thanks in advance all.

0 Comments   [ + ] Show comments

Answers (4)

Posted by: WSPPackager 14 years ago
Senior Purple Belt
0
Hi

I am sure the process you followed is 100% acceptable and proved. I do not see any other options better than this. I have managed many applications this ways and enjoyed the success.

thanks for sharing your best practice with the team.

regards,
Posted by: rakesh.kumar 14 years ago
Senior Yellow Belt
0
Even we follow the same process of using AppSearch, Signature and the LaunchCondition tables for dependency check.
To avoid LaunchCondition executing during Repair and Remove add Not Installed Condition to LaunchCondition action in InstallExecuteSequence table
Posted by: jaybee96 14 years ago
Red Belt
0
If you are a "repackager" rather then a developer then these pre-requisites should be documented and distributed / installed by the system management tool.
As a system Administrator you should know what is on the target machine.... and therefore distribute the pre-requisites before the package itself.
Posted by: elgwhoppo 14 years ago
Senior Purple Belt
0
Remember, the discussion here is about methods of prerequisite checking within an MSI, not how to deliver prerequisites.

The system administrator should know what is on the desktops and provide all prerequisites as needed, but multiple fail safes are always a good idea.
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ