Customising MSI packages can traditionally be done in one of 2 ways. Either the package is opened in an editor which supports the creation of transforms and the package is modified by hand to achieve the desired results. The second approach is to use the response transform mechanism to step through the installation dialogs and record the user responses in a transform file.
Both Wise and InstallShield have a tool to do this. Wise has the install tailor and InstallShield has the tuner. Both work on the same principle of opening the InstallUISequence table and stepping through it to record the responses and then saving the results into a transform that can be applied at install time on users machines.
There is no obvious problem with this approach and in fact it should be the perfect solution for any packager since it takes only a few minutes to completely configure an application for distribution to hundereds or thousands of users. The issue arises in the implementation. Both tools suffer from 2 obvious flaws. The first is that they capture more changes to the MSI than are required to customise the install to the users requirements. The second is that they create transforms that cannot be applied to their original MSIs without suppressing Transform validation errors. This makes troubleshooting and editing these transforms much more difficult. For some reason both of these tools can be very slow to start in the first place. To date I have been unable to determine the cause of these startup issues. But in some cases I have seen it take more than 2 minutes for the application to even open.
To solve this problem I created my own tool to create response transforms. The difference between my tool and the other vendor tools is that I do not attempt to capture all of the changes throughout the MSI during the session. The only places that should be affected by the user during the UI sequence are the Property table and the Feature table. By capturing changes only to these tables the transform is much cleaner and can be manipulated in any other third party tools. By only using these tables and generating the transform on the target platform the resulting MST is fully compliant and requires no error suppression in order to be applied to the base MSI.
* Important Note
When you install the utility there are no shortcuts to start it. To use the tool you must right-click on an MSI and a context menu will allow you to 'Create Transform'. Once you have walked through the install dialogs you will be prompted to save your MST file in the location of your choice.
© Copyright Jonty Lovell 2010. All Rights Reserved.