Creating a Windows Installer Package

Applies To: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2

Before you write a setup program that incorporates Active Directory Application Mode (ADAM) Setup, you should first create a Windows Installer package for your own application installation. Windows Installer reduces the total cost of ownership (TCO) for your customers by enabling them to install and configure your products and applications efficiently. Windows Installer can also provide your product with new capabilities to advertise features without installing them, install products on demand, and add user customizations.

For more information about Windows Installer, see “Windows Installer” on the MSDN Web site at https://go.microsoft.com/fwlink/?LinkID=3985.

The basic steps for creating a simple Windows Installer package are as follows:

  1. Plan the installation.

    List the general installation layout, including the files to install, the source path, and the target path. In addition, list all registry-related operations. Place the .exe file to install and all supporting files in a specific directory. You can also store supporting files in a hierarchy of subdirectories.

  2. Import a blank database.

    To create a Windows Installer package, you copy (or create with a software tool) a Windows Installer database file. A blank installation database, Schema.msi, is provided with the Microsoft Platform Software Development Kit (SDK) components for Windows Installer developers. The SDK also provides a partially blank database, Uisample.msi, which contains the suggested sequence tables and data required for a simple user interface. Copy Uisample.msi into the directory that contains the .exe file to be installed. The installation database file and the source files must be located at the root of the same directory. Otherwise, you will receive Setup errors.

  3. Specify the directory structure.

    The installer stores information about the installation directory structure in the Directory table. Use the database editor, Orca — or another editor — to add information to the Directory table.

  4. List the constituent components.

    List all components that are part of the installation. A component can be a set of files or resources that are added to the component table of the database.

  5. Specify files and file attributes.

    Add all relevant files to the Files table.

  6. Enter source media information in the Media table.

    The Media table describes the set of disks that make up the source media for the installation.

  7. Define features.

    Add product features to the Feature table. The installer enables users to install and remove portions of an application’s functionality, which are called Windows Installer features. When you include ADAM with your application, you can define ADAM as a separate feature or tie it to one of the other existing features. Create a placeholder feature for ADAM if you want to install ADAM as a separate feature.

  8. Define feature-to-component relationships.

    Use the FeatureComponents table to define the relationships between features and components. Each feature uses one or more components, and features can share components.

  9. Add registry information and shortcut properties.

    The Registry table and related tables of the installation database hold the registry information that must be written in the system registry for the application. The Shortcut table and related tables of the installation database hold information needed to install shortcuts.

  10. Specify properties.

    Windows Installer properties are global variables that the installer uses during an installation. You do not have to define all properties in every package; however, a small set of properties is required. The installer sets the values of properties in a particular order of precedence.

  11. Populate sequence tables.

    Several sequence tables must be populated for the application setup to run:

    • InstallExecuteSequence

    • InstallUISequence

    • AdminExecuteSequence

    • AdminUISequence

    • AdvtExecuteSequence

  12. Add summary information.

    Summary information is not critical for running Setup, but summary information is essential for the package to pass validation. You can use the tool MsiInfo.exe, which is provided with the Windows Installer SDK, to set these properties.