I recently did a project where the client needed to have SQL Server 2008 Express on the system before his product was installed. No problem, right? Just add the SQL Server 2008 Express prerequisite, right? Well, sort of. Here is what I found out.
SQL Server 2008 Express requires that the .NET Framework 3.5 SP1 and Windows Installer 4.5 be installed prior to it being installed. So, I did some research on the net to learn what should be installed first, .NET 3.5 SP1 or Windows Installer 4.5. Some said that .NET 3.5 SP1 had to be installed first. Others said that Windows Installer 4.5 had to be installed first. The later one is actually correct.
Windows Installer 4.5 has to be installed before .NET 3.5 SP1, or .NET 3.5 SP1 won't be installed. You won't get any errors if you install .NET 3.5 SP1 first when Windows Installer 4.5 is not already installed on the system. The problem will arise when you try to install SQL Server 2008 Express. It will just fail.
Now, there are three Windows Installer 4.5 32-bit prerequisites that have to be included with the installer. The .NET Framework 3.5 SP1 is not what you might expect. It installs and upgrades any of the lower-version .NET Frameworks. So, it does a lot of work, and takes longer to install than Windows Installer 4.5.
Here is the order of things.
Windows Installer 4.5 for Windows XP SP2 and later (x86)
Windows Installer 4.5 for Windows Server 2003 SP1 and later (x86)
Windows Installer 4.5 for Windows Vista and Server 2008 (x86)
Microsoft .NET Framework 3.5 SP1
Force a reboot of the machineMicrosoft SQL Server 2008 Express RTM (x86)
Main Product Install
You will have to add the prerequisites and then edit their order to get things right. Remember to force a reboot after the install of .NET 3.5 SP1. After Windows reboots, the install of SQL Server 2008 Express will take place, followed by your main product installation.
If you would like to watch free InstallShield tutorial videos on various topics, please visit:
http://www.wavepointstudios.net/Free-InstallShield-Tutorials.aspx