Much of an installation developer’s time is spent maintaining an existing installation project. Once in a while, however—often because of a new product version or product line, or a desire to migrate to a more professional-level installer—you’ll need to create a new installation project. If you’re fortunate enough to be creating your product’s first installer, the natural first question to ask is, Which project type should I use?
InstallShield provides three primary project types: Basic MSI projects, InstallScript projects, and InstallScript MSI projects.
From the standpoint of functionality, there isn’t much difference: any type of project will create an installer that transfers files, writes to the registry, creates shortcuts, controls Windows services, registers COM objects, creates an uninstaller, and so forth. Most of the InstallShield add-on functionality—such as manipulating XML files, working with IIS, or running SQL scripts—is also provided for all project types. The decision then rests on other considerations, such as your development resources and target customer type.
Basic MSI: Preferred by enterprise organizations for its integration with the operating system and with deployment systems such as Active Directory/Group Policy and SMS. Basic MSI installations present a common installation, rollback, and uninstallation experience, along with consistent transformation and silent-install mechanisms. Being able to deploy or advertise an installer from an MSI package is such a common enterprise requirement that the industry of repackaging/application readiness has sprung up to support it.
InstallScript: Generally gives you more control over the installer’s user interface, and more flexible file-update rules; for these reasons, this project type is often used for products sold directly to end users. InstallScript project customization is mostly handled in script code, so the InstallScript project type is often simpler to implement if you have experience with a procedural or event-driven programming language.
InstallScript MSI: A hybrid project type that uses Windows Installer for data transfer and InstallScript for the user interface. Since enterprises tend to deploy installers so that they skip the user interface, this project type offers no significant benefit over Basic MSI projects for them.
In future posts, we’ll talk about switching project types and about updating an older product installed using one project type from a newer version installed using a different type. For now, I hope this helps you decide in which direction you’ll take your first steps.