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.
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)
Please log in to answer
Posted by:
WSPPackager
14 years ago
Posted by:
rakesh.kumar
14 years ago
Posted by:
jaybee96
14 years ago
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.
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
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
so that the conversation will remain readable.