Windows installer user interface

Using the User Interface

This section is concerned primarily with how developers of installation packages author an installation user interface (UI) using the installer’s database and internal UI. For more information about the difference between an internal and external UI see About the User Interface.

To display a dialog box sequence or billboard during the installation, the name of the dialog box must be entered into the Action column of the appropriate action sequence table. The name of the dialog box must appear in the InstallUISequence or AdminUISequence table depending on whether the UI is scheduled to run under the INSTALL, ADVERTISE, or ADMIN action.

Although the installer supports the authoring of custom dialog boxes and billboards, there are also a number of reserved names for certain dialog box sequences. Because the installer uses these names when executing certain actions, these names must only be used with the types of dialog boxes for which they are reserved. A list of these reserved names, and a description of each of the special dialog box sequences, is given in Dialog Boxes.

The properties of each dialog box or billboard in the UI must be specified in the Dialog and BillBoard tables, respectively. The style of each dialog box must also be specified in the Dialog table by setting the dialog’s style bit flag.

Controls and text must be added to the dialog box, and these must be tied to ControlEvents, to enable the user to interact with the installation process. See Adding Controls and Text for more information on how to add controls to a dialog box.

Windows Installer internal UI handler can selectively show or hide dialog boxes to control the level of end-user interactivity during the installation. These levels of end-user interactivity are referred to as full, reduced, basic, and none. See User Interface Levels. for a full description of these UIlevels.

There are two methods to set the UI level. The UI level can be set programmatically with a call to MsiSetInternalUI, and the first parameter of MsiSetInternalUI specifies the UI level. Package developers can also set the UI level using the command line option «/q».

The behavior of each of the UI levels is determined by the authoring of the .msi file by the package developer. The author of an internal UI has flexibility in how these levels behave for a package. The availability of these levels depends on the authoring of the installation package. The author must specify every dialog box and control in the user interface in the Dialog and Control tables.

  • A full UI typically exhibits user interface wizard behavior, such as each dialog box in a sequence containing a Next>> button. This form of UI is familiar to many users and is the most common type of UI for an author to create. The installer presents a logical sequence of dialog boxes and prompts the user to interact with controls located in each dialog box.
  • A reduced UI typically suppresses the display of wizard behavior.
  • A basic UI typically only displays progress messages to the user.
  • A UI level of None means a silent installation.

Windows Installer provides a unique progress bar indicator in the ProgressBar control that displays to the user an estimate of the total time remaining until the installation is complete. For more information about the progress bar, see Authoring a ProgressBar Control.

UI authors should facilitate the accessibility of their application or product for all users. To learn more about Active Accessibility and Windows Installer, see Accessibility.

Beginning with Windows Installer 4.5 a custom user interface can be embedded within the Windows Installer package. For an example of an embedded custom UI see Using an Embedded UI.

Windows Installer

This documentation is intended for software developers who want to use Windows Installer to build installer packages for applications. If you’re looking for a redistributable for Windows Installer 4.5 and earlier, see this article. Note that there is no redistributable for Windows Installer 5.0. This version is included with the OS in Windows 7, Windows ServerВ 2008В R2, and later client and server releases (including Windows 10).

Microsoft Windows Installer is an installation and configuration service provided with Windows. The installer service enables customers to provide better corporate deployment and provides a standard format for component management. The installer also enables the advertisement of applications and features according to the operating system. For more information, see Platform Support of Advertisement.

This documentation describes Windows InstallerВ 5.0 and earlier versions. Not all the capabilities available in later Windows Installer versions are available in earlier versions. This documentation does not describe versions earlier than Windows InstallerВ 2.0. Installation packages and patches that are created for Windows InstallerВ 2.0 can still be installed by using Windows InstallerВ 3.0 and later.

Windows InstallerВ 3.0 and later, can install multiple patches with a single transaction that integrates installation progress, rollback, and reboots. The installer can apply patches in a specified order regardless of the order that the patches are provided to the system. Patching using Windows InstallerВ 3.0 only updates files affected by the patch and can be significantly faster than earlier installer versions. Patches installed with Windows Installer 3.0 or later can be uninstalled in any order to leave the state of the product the same as if the patch was never installed. Accounts with administrator privileges can use the API of Windows InstallerВ 3.0 and later to query and inventory product, feature, component, and patch information. The installer can be used to read, edit, and replace source lists for network, URL, and media sources. Administrators can enumerate across user and install contexts, and manage source lists from an external process.

Windows Installer 4.5 and later can install multiple installation packages using transaction processing. If all the packages in the transaction cannot be installed successfully, or if the user cancels the installation, the Windows Installer can roll back changes and restore the computer to its original state. The installer ensures that all the packages belonging to a multiple-package transaction are installed or none of the packages are installed.

Beginning with Windows Installer 5.0, a package can be authored to secure new accounts, Windows Services, files, folders, and registry keys. The package can specify a security descriptor that denies permissions, specifies inheritance of permissions from a parent resource, or specifies the permissions of a new account. For information, see Securing Resources. The Windows Installer 5.0 service can enumerate all components installed on the computer and obtain the key path for the component. For more information, see Enumerating Components. By Using Services Configuration, Windows Installer 5.0 packages can customize the services on a computer. Setup developers can use Windows Installer 5.0 and Single Package Authoring to develop single installation packages capable of installing an application in either the per-machine or per-user installation context.

Читайте также:  Windows script run application

Where applicable

Windows Installer enables the efficient installation and configuration of your products and applications running on Windows. The installer provides new capabilities to advertise features without installing them, to install products on demand, and to add user customizations.

Windows Installer 5.0 running on Windows ServerВ 2012 or WindowsВ 8 supports the installation of approved apps on WindowsВ RT. A Windows Installer package, patch, or transform that has not been signed by Microsoft cannot be installed on WindowsВ RT. The Template Summary property indicates the platform that is compatible with an installation database and in this case should include the value for WindowsВ RT.

Windows Installer is intended for the development of desktop style applications.

Developer audience

This documentation is intended for software developers who want to make applications that use Windows Installer. It provides general background information about installation packages and the installer service. It contains complete descriptions of the application programming interface and elements of the installer database. This documentation also contains supplemental information for developers who want to use a table editor or a package creation tool to make or maintain an installation.

Run-time requirements

Windows InstallerВ 5.0 is included with, Windows 7, Windows ServerВ 2008В R2, and later releases. There is no redistributable for Windows Installer 5.0.

Versions earlier than Windows Installer 5.0 were released with Windows ServerВ 2008, WindowsВ Vista, Windows ServerВ 2003, WindowsВ XP, and WindowsВ 2000. Windows Installer Redistributables are available for Windows Installer 4.5 and some earlier versions.

Windows InstallerВ 4.5 requires Windows ServerВ 2008, WindowsВ Vista, WindowsВ XP with Service PackВ 2 (SP2) and later, and Windows ServerВ 2003 with Service PackВ 1 (SP1) and later.

Windows InstallerВ 4.0 requires WindowsВ Vista or Windows ServerВ 2008. There is no redistributable for installing Windows InstallerВ 4.0 on other operating systems. An updated version of Windows InstallerВ 4.0, which does not add any new features, is available in WindowsВ Vista with Service PackВ 1 (SP1) and Windows ServerВ 2008.

Windows InstallerВ 3.1 requires Windows ServerВ 2003, WindowsВ XP, or WindowsВ 2000 with Service PackВ 3 (SP3).

Windows InstallerВ 3.0 requires Windows ServerВ 2003, WindowsВ XP, or WindowsВ 2000 with SP3. Windows InstallerВ 3.0 is included in WindowsВ XP with Service PackВ 2 (SP2). It is available as a redistributable for WindowsВ 2000 Server with Service PackВ 3 (SP3) and WindowsВ 2000 Server with Service PackВ 4 (SP4), WindowsВ XP RTM and WindowsВ XP with Service PackВ 1 (SP1), and Windows ServerВ 2003 RTM.

Windows InstallerВ 2.0 is contained in Windows ServerВ 2003 and WindowsВ XP.

Windows InstallerВ 2.0 is available as a package for installing or upgrading to Windows InstallerВ 2.0 on WindowsВ 2000. This package should not be used to install or upgrade Windows InstallerВ 2.0 on Windows ServerВ 2003 and WindowsВ XP.

Property Reference

This section lists the properties defined by Windows Installer:

Additional properties can be specified by authored data or custom actions. Properties with names containing no lowercase letters are public properties and can be specified on the command line.

For information about values of the Uninstall registry key that are provided by installer properties, see Uninstall Registry Key.

Component Location Properties

The following list provides links to more information about the component location properties.

Property Description
OriginalDatabase The installer sets this property to the launched-from database, the database on the source, or the cached database.
ParentOriginalDatabase The installer sets this property for installations run by a Concurrent Installation action.
SourceDir Root directory that contains the source files.
TARGETDIR Specifies the root destination directory for the installation. During an administrative installation this property is the location to copy the installation package.

Configuration Properties

The following list provides links to more information about other configurable properties.

Property Description
ACTION Initial action called after the installer is initialized.
ALLUSERS Determines where configuration information is stored.
ARPAUTHORIZEDCDFPREFIX URL of the update channel for an application.
ARPCOMMENTS Provides Comments for the Add or Remove Programs in Control Panel.
ARPCONTACT Provides Contact for the Add or Remove Programs in Control Panel.
ARPINSTALLLOCATION Fully qualified path to the primary folder of an application.
ARPNOMODIFY Disables functionality that modifies a product.
ARPNOREMOVE Disables functionality that removes a product.
ARPNOREPAIR Disables the Repair button in the Programs wizard.
ARPPRODUCTICON Specifies the primary icon for the installation package.
ARPREADME Provides a ReadMe for the Add or Remove Programs in Control Panel.
ARPSIZE Estimated size of an application in kilobytes.
ARPSYSTEMCOMPONENT Prevents display of an application in the Add or Remove Programs list.
ARPURLINFOABOUT URL for the home page of an application.
ARPURLUPDATEINFO URL for application update information.
AVAILABLEFREEREG Registry space (in kilobytes) that an application requires. Used by AllocateRegistrySpace action.
CCP_DRIVE The root path for qualifying products for CCP.
DefaultUIFont Default font style used for controls.
DISABLEADVTSHORTCUTS Set to disable the generation the specific shortcuts that support installation-on-demand.
DISABLEMEDIA Prevents the installer from registering media sources, such as a CD-ROMs, as valid sources for the product.
DISABLEROLLBACK Disables rollback for the current configuration.
EXECUTEACTION Top-level action that ExecuteAction initiates.
EXECUTEMODE Mode of execution that the installer performs.
FASTOEM Improves installation performance under specific OEM scenarios.
INSTALLLEVEL Initial level where features are installed.
LIMITUI UI level capped as Basic.
LOGACTION List of action names to be logged.
MEDIAPACKAGEPATH This property must be set to the relative path if the installation package is not located at the root of the CD-ROM.
MSIARPSETTINGSIDENTIFIER This optional property contains a semi-colon delimited list of the registry locations where the application stores a user’s settings and preferences. Available with Windows Installer 4.0.
MSIDISABLEEEUI Disable the embedded user interface for the installation.
Windows Installer 4.0 and earlier: Not supported.
MSIFASTINSTALL Reduce the time required to install a large Windows Installer package.
Windows Installer 4.5 and earlier: Not supported.
MSIINSTALLPERUSER Requests that the Windows Installer install the package only for the current user.
Windows Installer 4.5 and earlier: Not supported.
MSINODISABLEMEDIA Set this property to prevent the installer from setting the DISABLEMEDIA property.
MSIENFORCEUPGRADECOMPONENTRULES Set this property to 1 (one) on the command line or in the Property Table to apply the upgrade component rules during small updates and minor upgrades of a specific product. Available beginning with Windows Installer 3.0.
MSIUNINSTALLSUPERSEDEDCOMPONENTS When this property has been set to 1, the installer can unregister and uninstall redundant components to prevent leaving behind orphan components on the computer.
Windows Installer 4.0 and earlier: Not supported.
PRIMARYFOLDER Allows the author to designate a primary folder for an installation. Used to determine the values for the PrimaryVolumePath, PrimaryVolumeSpaceAvailable, PrimaryVolumeSpaceRequired, and PrimaryVolumeSpaceRemaining properties.
Privileged Runs an installation with elevated privileges.
PROMPTROLLBACKCOST Action if there is insufficient disk space for the installation.
REBOOT Forces or suppresses a restart.
REBOOTPROMPT Suppresses the display of prompts for restarts to the user. Any restarts that are needed happen automatically.
ROOTDRIVE Default drive for an installation.
SEQUENCE A table that has the sequence table schema.
SHORTFILENAMES Causes short file names to be used.
TRANSFORMS List of transforms to be applied to a database.
TRANSFORMSATSOURCE Informs the installer that the transforms for a product reside at the source.
TRANSFORMSSECURE Setting the TRANSFORMSECURE property to 1 (one) informs the installer that transforms are to be cached locally on the user computer in a location where the user does not have write access.
MsiLogFileLocation The installer sets the value of this property to the full path of the log file, when logging has been enabled. This property is available starting with Windows Installer 4.0.
MsiLogging Sets the default logging mode for the Windows Installer package. This property is available starting with Windows Installer 4.0.
MSIUSEREALADMINDETECTION Set this property to 1 to request that the installer use actual user information when setting the AdminUser property. This property is available starting with Windows Installer 4.0.

Date, Time Properties

The Date and Time properties are live properties that the installer sets when data is extracted.

Property Description
Date The current date.
Time The current time.

Feature Installation Options Properties

The following list provides links to more information about the feature installation options properties.

Property Description
ADDDEFAULT List of features to be installed in the default configuration.
ADDLOCAL List of features to be installed locally.
ADDSOURCE List of features to be run from source.
ADVERTISE List of features to be advertised.
COMPADDDEFAULT List of components to be installed in the default configuration.
COMPADDLOCAL List of component IDs to be installed locally.
COMPADDSOURCE List of component IDs to run from source media.
FILEADDDEFAULT List of file keys for files to be installed in the default configuration.
FILEADDLOCAL List of file keys for files to be run locally.
FILEADDSOURCE List of file keys to be run from the source media.
MSIDISABLELUAPATCHING Setting this property prevents Least Privileged User (LUA) patching of an application.
MsiPatchRemovalList List of patches to be removed during the installation.
MSIRESTARTMANAGERCONTROL Specifies whether the package uses the Restart Manager or FilesInUse functionality.
MSIDISABLERMRESTART Specifies how applications or services that are currently using files affected by an update should be shutdown and restarted to enable the installation of the update.
MSIRMSHUTDOWN Specifies how applications or services that are currently using files affected by an update should be shutdown to enable the installation of the update.
MSIPATCHREMOVE Setting this property removes patches.
PATCH Setting this property applies a patch.
REINSTALL List of features to be reinstalled.
REINSTALLMODE A string that contains letters that specify the type of reinstall to perform.
REMOVE List of features to be removed.

Hardware Properties

The following list identifies the hardware properties that the Windows Installer sets at startup.

Property Description
Alpha The numeric processor level when running on an Alpha processor.

[!Note]
This property is obsolete, the Alpha platform is not supported by Windows Installer.

BorderSide The width of the window borders, in pixels.
BorderTop The height of the window borders, in pixels.
CaptionHeight The height of normal caption area, in pixels.
ColorBits The number of adjacent color bits for each pixel.
Intel The numeric processor level when running on an Intel processor.
Intel64 The numeric processor level when running on an Itanium processor.
Msix64 The numeric processor level when running on an x64 processor.
PhysicalMemory The size of the installed RAM, in megabytes.
ScreenX The width of the screen, in pixels.
ScreenY The height of the screen, in pixels.
TextHeight The height of characters, in logical units.
VirtualMemory The amount of available page file space, in megabytes.

Installation Status Properties

The following list provides links to more information about status properties that are updated by the installer during installation.

Property Description
AFTERREBOOT Indicates current installation follows a reboot that the ForceReboot action invokes.
CostingComplete Indicates whether disk space costing is complete.
Installed Indicates that a product is already installed.
MSICHECKCRCS The Installer does a CRC on files only if the MSICHECKCRCS property is set.
MsiRestartManagerSessionKey The Installer sets this property to the session key for the Restart Manager session.
MsiRunningElevated The Installer sets the value of this property to 1 when the installer is running with elevated privileges.
MsiSystemRebootPending The Installer sets this property to 1 if a restart of the operating system is currently pending.
MsiUIHideCancel The Installer sets MsiUIHideCancel to 1 when the internal install level includes INSTALLUILEVEL_HIDECANCEL.
MsiUIProgressOnly The Installer sets MsiUIProgressOnly to 1 when the internal install level includes INSTALLUILEVEL_PROGRESSONLY.
MsiUISourceResOnly MsiUISourceResOnly to 1 (one) when the internal install level includes INSTALLUILEVEL_SOURCERESONLY.
NOCOMPANYNAME Suppresses the automatic setting of the COMPANYNAME property.
NOUSERNAME Suppresses the automatic setting of the USERNAME property.
OutOfDiskSpace Insufficient disk space to accommodate the installation.
OutOfNoRbDiskSpace Insufficient disk space with rollback turned off.
Preselected Features are already selected.
PrimaryVolumePath The Installer sets the value of this property to the path of the volume that the PRIMARYFOLDER property designates.
PrimaryVolumeSpaceAvailable The Installer sets the value of this property to a string that represents the total number of bytes available on the volume that the PrimaryVolumePath property references.
PrimaryVolumeSpaceRemaining The Installer sets the value of this property to a string that represents the total number of bytes remaining on the volume that the PrimaryVolumePath property references if all the currently selected features are installed.
PrimaryVolumeSpaceRequired The Installer sets the value of this property to a string that represents the total number of bytes required by all currently selected features on the volume that the PrimaryVolumePath property references.
ProductLanguage Numeric language identifier (LANGID) for the database. (REQUIRED)
ReplacedInUseFiles Set if the installer installs over a file that is being held in use.
RESUME Resumed installation.
RollbackDisabled The installer sets this property when rollback is disabled.
UILevel Indicates the user interface level.
UpdateStarted Set when changes to the system have begun for this installation.
UPGRADINGPRODUCTCODE Set by the installer when an upgrade removes an application.
VersionMsi The installer sets this property to the version of Windows Installer that is run during the installation.

Operating System Properties

The following list provides links to more information about operating system properties that the Installer sets at startup.

Property Name Brief Description
AdminUser Set on WindowsВ 2000 if the user has administrator privileges.
ComputerName Computer name of the current system.
MsiNetAssemblySupport On systems that support common language runtime assemblies, the Installer sets the value of this property to the file version of fusion.dll. The Installer does not set this property if the operating system does not support common language runtime assemblies.
MsiNTProductType Indicates the Windows product type.
MsiNTSuiteBackOffice On WindowsВ 2000 and later operating systems, the Installer sets this property to 1 (one) only if Microsoft BackOffice components are installed.
MsiNTSuiteDataCenter On WindowsВ 2000 and later operating systems, the Installer sets this property to 1 (one) only if WindowsВ 2000 Datacenter Server is installed.
MsiNTSuiteEnterprise On WindowsВ 2000 and later operating systems, the Installer sets this property to 1 (one) only if WindowsВ 2000 Advanced Server is installed.
MsiNTSuitePersonal On WindowsВ XP and later operating systems, the Installer sets this property to 1 (one) only if the operating system is Home (not Professional).
MsiNTSuiteSmallBusiness On WindowsВ 2000 and later operating systems, the Installer sets this property to 1 (one) only if Microsoft Small Business Server is installed.
MsiNTSuiteSmallBusinessRestricted On WindowsВ 2000 and later operating systems, the Installer sets this property to 1 (one) only if Microsoft Small Business Server is installed with the restrictive client license.
MsiNTSuiteWebServer On WindowsВ 2000 and later operating systems, the Installer sets the MsiNTSuiteWebServer property to 1 (one) if the web edition of the Windows ServerВ 2003 is installed. Only available with the Windows ServerВ 2003 release of the Windows Installer.
MsiTabletPC The installer sets this property to a nonzero value if the current operating system is WindowsВ XP Tablet PC Edition.
MsiWin32AssemblySupport On systems that support Win32 assemblies, the Installer sets the value of this property to the file version of sxs.dll. The Installer does not set this property if the operating system does not support Win32 assemblies.
OLEAdvtSupport Set if OLE supports the Windows Installer.
RedirectedDllSupport The Installer sets the RedirectedDllSupport property if the system performing the installation supports Isolated Components.
RemoteAdminTS The Installer sets the RemoteAdminTS property when the system is a remote administration server running the Terminal Server role service.
ServicePackLevel The version number of the operating system service pack.
ServicePackLevelMinor The minor version number of the operating system service pack.
SharedWindows Set when the system is operating as Shared Windows.
ShellAdvtSupport Set if the shell supports feature advertising.
SystemLanguageID Default language identifier for the system.
TerminalServer Set when the system is a server running the Terminal Server role service.
TTCSupport Indicates if the operating system supports using .ttc (true type font collections) files.
Version9X Version number for the Windows operating system.
VersionDatabase Numeric database version of the current installation.
VersionNT Version number for the operating system.
VersionNT64 Version number for the operating system if the system is running on a 64-bit computer.
Windows build Build number of the operating system.

Product Information Properties

The following list provides links to more information about product-specific properties specified in the Property Table.

Property Name Brief Description
ARPHELPLINK Internet address or URL for technical support.
ARPHELPTELEPHONE Technical support phone numbers.
DiskPrompt String displayed by a message box that prompts for a disk.
IsAdminPackage Set to 1 (one) if the current installation is running from a package created through an administrative installation.
LeftUnit Places units to the left of the number.
Manufacturer Name of the application manufacturer. (Required)
MediaSourceDir The installer sets this property to 1 (one) when the installation uses a media source, such as a CD-ROM.
MSIINSTANCEGUID The presence of this property indicates that a product code changing transform is registered to the product.
MSINEWINSTANCE This property indicates the installation of a new instance of a product with instance transforms.
ParentProductCode The installer sets this property for installations that a Concurrent Installation action runs.
PIDTemplate String used as a template for the PIDKEY property.
ProductCode A unique identifier for a specific product release. (Required)
ProductName Human readable name of an application. (Required)
ProductState Set to the installed state of a product.
ProductVersion String format of the product version as a numeric value. (Required)
UpgradeCode A GUID that represents a related set of products.

Summary Information Update Properties

The following properties are only set by transforms in .msp files that are used to update the summary information stream of an administrative image.

Property Description
PATCHNEWPACKAGECODE The value of this property is written to the Revision Number Summary Property.
PATCHNEWSUMMARYCOMMENTS The value of this property is written to the Comments Summary Property.
PATCHNEWSUMMARYSUBJECT The value of this property is written to the Subject Summary Property.

System Folder Properties

The following list provides links to more information about system folders that the installer sets at setup.

Property Description
AdminToolsFolder The full path to the directory that contains administrative tools.
AppDataFolder The full path to the Roaming folder for the current user.
CommonAppDataFolder The full path to application data for all users.
CommonFiles64Folder The full path to the predefined 64-bit Common Files folder.
CommonFilesFolder The full path to the Common Files folder for the current user.
DesktopFolder The full path to the Desktop folder.
FavoritesFolder The full path to the Favorites folder for the current user.
FontsFolder The full path to the Fonts folder.
LocalAppDataFolder The full path to the folder that contains local (nonroaming) applications.
MyPicturesFolder The full path to the Pictures folder.
NetHoodFolder The full path to the NetHood folder.
PersonalFolder The full path to the Documents folder for the current user.
PrintHoodFolder The full path to the PrintHood folder.
ProgramFiles64Folder The full path to the predefined 64-bit Program Files folder.
ProgramFilesFolder The full path to the predefined 32-bit Program Files folder.
ProgramMenuFolder The full path to the Program Menu folder.
RecentFolder The full path to the Recent folder.
SendToFolder The full path to the SendTo folder for the current user.
StartMenuFolder The full path to the Start menu folder.
StartupFolder The full path to the Startup folder.
System16Folder The full path to folder for 16-bit system DLLs.
System64Folder The full path to the predefined System64 folder.
SystemFolder The full path to the System folder for the current user.
TempFolder The full path to the Temp folder.
TemplateFolder The full path to the Template folder for the current user.
WindowsFolder The full path to the Windows folder.
WindowsVolume The volume of the Windows folder.

User Information Properties

The following list provides links to more information about user-supplied information.

Читайте также:  Виртуальная память windows 10 как настроить для 16 гб озу
Оцените статью