Course Overview
InstallShield, MSI Projects

Creating Basic MSI Project using the Windows Installer Service

Customize Your Installation and Identify, Install and Configure Special File Types

The InstallShield, MSI Projects course provides you with a solid understanding of installation terminology, the tasks an installation software 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. 

InstallShield MicroConsulting

InstallShield MicroConsulting provides assistance for specific, short-term needs like setup challenges or troubleshooting failed patches and updates. The service provides eight hours (over one business day) of dedicated consulting time on up to three installation topics, delivered remotely by our installation experts.

Learn More

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
  • Customize your installer's user interface
  • Package your Windows installer for Windows Vista, Windows 7, and later 
  • 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, C or C++, and 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 and dynamic file linking
  • Working with destination folders
  • Best Practice fundamentals
  • "Key" resource usage
  • GUID usage 
  • Restarts and the Windows 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 or DVD-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
  • Using the InstallShield Automation interface
  • 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 User Account Control (UAC)
  • Maintenance and uninstallation
  • Reducing installation time for large packages 
  • 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
  • Text files
  • INI files, XML files, and arbitrary text files
  • Environment variables
  • File associations
  • Setting file, folder, and registry permissions
  • Scheduled tasks

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
  • Running SQL scripts
  • Forcing data removal

Creating and Consuming Reusable Installation Elements

InstallShield provides methods for creating elements that can be used by multiple installation projects, and for combining multiple complete product installations. In this section, you will learn about:

  • Creating merge modules
  • Creating InstallShield prerequisites
  • Working with repositories
  • Creating suite projects
  • 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
  • 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
  • Patches and User Account Control
  • 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