The InstallShield, MSI Projects course provides you with a solid understanding of installation terminology, the tasks an installation program needs to perform, and the InstallShield development environment.
In this course, you will learn how to customize your installation with custom actions in order to make changes to your end users' systems. You will also see how to correctly identify, install, and configure special types of files (e.g., COM servers, Windows services, and .NET assemblies). Finally, you will understand how to perform simple to sophisticated changes to your installation's user interface.
This course teaches you how to create Basic MSI projects, which use the Windows Installer service (MSI) for the installation's behavior and appearance. This course does not cover InstallScript MSI projects.
Objectives
In this class you will learn how to:
- Create and organize an installation project
- Install files and create shortcuts
- Install and configure special types of files and data, such as registry and INI data, COM servers, Windows services, and .NET assemblies
- Work with MSI sequences and custom actions
- Modify your installer's user interface
- Package your installer for Windows Vista
- Use the Automation interface to modify your project outside the graphical environment
Course Prerequisites
Previous InstallShield experience is not required; however, you should be comfortable with the following:
- Using Windows Explorer and the command prompt to create and manage files, and run executables
- Basic Windows terminology (e.g. DLL, Control Panel, etc.)
Later sections of the course assume familiarity with programming or scripting languages such as VBScript, Visual Basic, and C or C++.
Course Curriculum
The following course sections and topics will be covered in the class. If you have a specific area that you think might need extra attention, mention it to your instructor on the first day of class.
Introduction
You will begin by learning about the background and motivation for using the Windows Installer service and how InstallShield fits into the installation development process. You will also learn about the resources available as you work with InstallShield, including:
- About the Windows Installer service
- About Windows Installer installation packages
- About the Windows Installer installation mechanism
- About the InstallShield environment
- Getting help
About Projects
The foundation of your installation program is an InstallShield project. In this section, you will learn about general installation terminology and design issues and how to create a project that reflects the design of your product. In this section, you will learn about:
- Installation terminology
- Using the Project Assistant
- Using the Installation Designer
- Working with features and components
- Global product and project data
Installing Files
The primary job of your installation program is to transfer files to the user's system. In this section, you will learn about the different methods for adding files and folders to your installation project, including:
- Static file linking
- Dynamic file linking
- Working with destination folders
- Best Practice fundamentals
- "Key" resource usage
- GUID usage
- Restarts and the Windows Vista Restart Manager
- Creating shortcuts
- Using merge modules and prerequisites
Building Releases
Before you can test your installation, you must build a set of disk images. In this section, you will learn how to use the InstallShield graphical tools and command-line tools for building release images for CD-ROM, a network location, or for the Web. In this section, you will learn about:
- Using the Release Wizard
- Media types
- Web installations
- Command-line builds
- Digitally signing the installation and files
- Using the Standalone build system
Deploying an Installation
Windows Installer-based installations support several different installation modes. In this chapter, you will learn how to run an installation from Windows Explorer or from the command prompt, how to perform silent and limited-user interface installations, and how to pass information to the running installation from the command line. In this section, you will learn about:
- Running an installation
- Understand how to interact with Windows Vista features such as UAC
- Maintenance and uninstallation
- Using msiexec.exe
- Silent and reduced-UI installations
- Passing properties from the command line
- MSI Log Analyzer
Non-File System Changes
In addition to installing files, most installation programs need to make global changes to the user's operating system. In this section, you will learn how to install configuration data, such as:
- Registry data
- INI files
- XML files
- Environment variables
- File associations
Installing Special Files
For most types of files, the installer's only responsibility is to transfer the files. However, some types of files require additional registration or configuration information to be written to the target system. In this section, you will learn how to install and configure the following types of files:
- COM servers
- Windows services
- .NET Assemblies
- Working with Repositories
- Running SQL scripts
- Forcing data removal
- Creating merge modules
- Creating InstallShield prerequisites
- Chaining MSI installations
Conditions and Actions
Unlike traditional installations, Windows Installer installations do not use an explicit script, but instead perform actions arranged into your product's sequence tables. In this section, you will learn about:
- MSI properties
- Condition syntax and examples
- Installation sequences
- Custom actions: action types and guidelines
- Getting and setting properties
- Launching executables
- Calling DLLs
- Managed code custom actions
- Editing MSI tables directly
User Interface
Like standard Windows Installer actions, your installation's user interface is controlled by MSI tables and actions. In this section, you will learn about:
- How MSI determines dialog order and conditions
- Working with control events
- Working with control conditions
- MSI Debugger
- Creating new dialog boxes
- Subscription to Actions
- Required dialog boxes
- Localization
Updates and Patches
Windows Installer supports different types of updates and different techniques for packaging them for distribution. In this section, you will learn about:
- Types of updates
- Creating minor upgrades
- Creating major upgrades
- QuickPatch projects
- General patch projects
- Patching applications on Vista
- Uninstalling a patch
Additional Topics
In this section, you will learn about additional functionality of InstallShield and Windows Installer, including:
- How to create and deploy transforms
- Direct MSI editing
- Using MSI Automation to modify a project
- Multi-instance installations
- Test Tools and Tricks