Aaron Stebner posted a blog where he mentions a problem involving the fact that LaunchConditions doesn’t support ordering of conditions. I’ve experienced this in the past myself and here are a few suggestions in the WindowsInstaller team happens to be reading.
In the past I’ve created installs that had the following additional requirements:
1) Display more then 1 condition at a time
2) Control the ordering of the conditions
3) Have the dialog be more `MSI` like ( ie not MessageBox )
4) Differentiate between Warnings and Errors
So I created a custom MSI table which is similar to the LaunchConditions table except that it has an Order column and a Required column. Then I wrote a CustomAction that processed the data and created an custom error property and a custom warning property. Finally I created a dialog that displayed the properties and either had a Exit button or a Next button depending on which property had data. I packaged this all into a merge module and reuse it with my various projects.
A future version of WindowsInstaller could easily implement this pattern by extending the schema of the LaunchConditions table and LaunchCondition standard action. A new dialog could be defined just like they did with the reboot mananger. The standard action could revert to the old behavior if the table doesn’t have the new columns.
Then I could get back to authoring data relationships insted of writing custom actions.