A very common point of confusion is where a person wants to create an installation in InstallShield that uses the Windows Installer. But they don’t know which project type to use. Basic MSI or InstallScript MSI.
The overwhelming majority of people prefer to use the Basic MSI project. But if you are new to installation development, you may find that the Basic MSI project has a steeper learning curve. I have written posts on this. Just search this website.
When Microsoft created the Windows Installer, they realized it would not provide all the functionality to cover every conceivable Windows installation scenario that people would come up with. The possibilities are just too endless. However, even writing custom actions in a Basic MSI project will not always accomplish what you want. So, why would you ever want to use the InstallScript MSI project?
You should know that to some installation developers, the InstallScript MSI project type is a joke. These people can not fathom why you would use such a thing. Especially, when it is seen as a hybrid of the Basic MSI and InstallScript project types. However, the InstallScript MSI project uses the Windows Installer, the InstallScript project does not.
Other developers feel the InstallScript MSI project is the weakest type of project that InstallShield offers. However, there are some very appropriate times to use it.
If your boss or client is requesting something out of the ordinary, it may not be possible to accomplish it in a Basic MSI project. Generally, this has to do when they want control over every aspect of the installation. I’ll give you a perfect example.
Let’s say your boss wants a user to be able to click the Uninstall button in the Add/Remove Programs dialog and then bring up a Custom dialog box which presents two options. Uninstall option 1 and uninstall option 2. Let’s say option 1 drops a SQL Server database and option 2 does not. The user chooses an option, clicks the Next button, it goes to the ReadyToRemove dialog, the user clicks Remove, and the program is uninstalled according to the option they selected.
Now, you can not do this in a Basic MSI project. Why? Because when you click the Uninstall button in Add/Remove Programs, the User Interface sequence is skipped, and just the Execute sequence is performed. So, you can’t do it in Basic MSI. If you want this degree of customization, then you should consider the InstallScript MSI project.
There are other examples where an InstallScript MSI project makes more sense, and it’s generally when you want a higher level of customization than Basic MSI is able to provide. And that’s when it’s perfectly acceptable to use InstallScript MSI.
Don’t let anyone make you feel bad for using it.