I have written two posts in the past on the differences between Basic MSI, InstallScript, and InstallScript MSI projects in InstallShield. Here are the links to those posts:
In the first link above, I mentioned that if you are just starting out, the Basic MSI project has a steeper learning curve than the InstallScript project. Well, a reader wrote and asked me why? Here's the answer.
InstallScript projects are driven by a script. Usually, InstallScript projects also broken up into separate event handler scripts. So, this model of installation development is more intuitive and more closely resembles basic Windows application development. InstallScript is a procedural-based language and is very easy to learn.
Basic MSI projects are totally different. They are driven by the Windows Installer (MSI), which is governed by a sequence of actions. These actions are of two types, Standard and Custom. These actions control the user interface of the installation and they make all necessary modifications to the user's system. In addition, the majority of information in the Basic MSI project is held in a set of tables, as an MSI file is really a relational database. Unless a person learned to work with the Windows Installer initially, they may find that working with a set of tables is less intuitive than working with a script.
There are other differences, in an InstallScript project, all the UI elements are performed by function calls made from the script. In a Basic MSI project, the UI elements are performed by a set of actions, and these actions generally involve a sequence of dialogs. To define how each of the dialogs behaves, you have to define behaviors for each of the controls in the dialogs. This is done through the setting of properties for the controls.
Another big difference is that in order to customize a Basic MSI installation and have a piece of functionality that is not provided by default by the Windows Installer, you have to write a custom action. Custom Actions are actions that you create and insert into the sequence of a Basic MSI installation. There are many different types of custom actions that you can create, but generally people write custom actions in InstallScript. Basically, you write an InstallScript function that performs a specific task, and then you create a custom action that calls that function. These can be a little confusing to set up the first couple of times you do them.
Even though you now know the differences between the project types, and may think that you would never want to create a Basic MSI project because it is initially harder, just remember that Basic MSI development is not difficult when someone shows you how to do it. That's why I developed the InstallShield Training DVD courses, and that's why in the courses I take people by the hand and show them what to do. It makes a huge difference.
If you want to quickly learn how to develop Basic MSI installations, go to this link now: