The new Windows Installer 4.5 has support for chained MSIs, which is fantastic. What that means is that you can finally have your install invoke one or more other MSI installations, and they all get installed as a single transaction, meaning, if any one of them fails for any reason, the entire install can be rolled back seamlessly.
This is a huge step up from the old days, especially for those complex fat client installations that require things like XML, SQL, ADO, VSTO, etc that may or may not be present on older OS’s.
Anyway, one problem I ran into when experimenting with this functionality is that I had both the SQL Native Client Drivers and the SQL Server Management Objects as chained installs, but, when I tested my installation, the SQL SMO ended up getting installed first, and it failed, because it depends on the SQL Native Client Drivers to already be installed.
I thought that maybe the order of the items in the Chained MSI Packages list controlled the order, but no, apparently, that list is just alphabetic.
You can actually only control the order of chained MSIs by using the Direct Table Editor on the ISChainPackage table:
Just enter numbers from 1 to x in the order column to control which chained MSI is installed first, next, etc.