Contents
- Package definition
- Package structure
- Package internal information
- Merge Module
- Files
- Registries
- INI Files
- Shortcuts
- Fonts
- Services
- ODBC (Open DataBase Connectivity)
- System variables
- Properties
- Running custom code from the package
- Custom Actions
- System Search
- Upgrades
- Patching
- Upgrading
- De-hardcoding and Variabilization
- De-hardcoding
- Variabilization
- Vendor MSI
- Definition
- Seller Vendor Customization
- Direct vendor MSI
- Vendor MSI hidden in setup
- Vendor MSI with patch
- Modify an MSI vendor, from cab outside to cab inside, etc.
- Msiexec.exe commands
- Installing a package
- Repairing a package
- Uninstalling a package
- Administrative Installation
- Creating logs
- Applying a patch over a MSI
- Installation with MST
- Active-Setup Mechanism
Properties
Properties are global variables that Windows Installer uses during installation, with values defined either in the package or by the user.
Property classification
Private properties:
- used internally by Windows Installer and defined directly in the package
- their name includes lowercase letters
- the value of these properties cannot be overwritten at installation by using commands
Public properties:
- defined inside the package, they can be changed by commands, applying a transform, or through a graphical interface.
- their names must not contain lower case letters
- usually, they are set during installation (eg INSTALLEVEL)
Restricted public properties:
- for security reasons, the author of a package may restrict the user from modifying public properties
- if all of the following conditions are true, a user who is not a system
administrator may overwrite an approved list of restricted public properties
- The system is not Windows 2000.
- The user is not a system administrator.
- The package is installed with elevated privileges.
There is a predefined list of restricted properties and, listed below, are the most important:
A software packager can extend this list (by adding these properties as the value in this property) to include other public properties with the “SecureCustomProperties” property.
These five properties are required in a package:
- ProductCode - a unique identifier of the GUID package
- ProductLanguage - the language that the installer uses in the LANGID graphical interface
- Manufacturer - the name of the package manufacturer
- ProductVersion - the application version in string format (form: major.minor.build = 255.255.65535)
- ProductName - the name of the application to be installed (maximum 63 characters)
The required properties must be listed in the Property tables. Properties that have a null value are not listed in this table. Instead, they can be set directly through the program, custom actions, or the command line. You can also use Properties in conditional statements.
The Most Common Properties used in Packages
ALLUSERS
The ALLUSERS property determines where the package configurations are stored.
Windows NT/Windows 2000 | ALLUSERS is not set. (ALLUSERS="") | ALLUSERS = 1 | ALLUSERS = 2 |
User access privileges. | Per-user installation using folders in the user's personal profile. | Not valid; returns an error stating the user does not have enough access privileges to install the application. | Per-user installation using folders in the user's personal profile. |
Administrator access privileges. | Per-user installation using folders in the user's personal profile. | Per-machine installation using folders in "All Users" profile. | Per-machine installation using folders in "All Users" profile. |
If the ALLUSERS property is not set, Windows Installer performs a per-user installation.
ARPNOREMOVE
If this property is set, the remove button will not appear in Add\Remove Programs. Its default value is 0.
ARPNOREPAIR
When this property is set, the repair button in Add\Remove Program is not displayed. The default value is 0.
ARPNOMODIFY
By setting this property, the change button in Add\Remove Program is not displayed. The default value is 0.
ARPSYSTEMCOMPONENT
When this property is set, the package is not displayed in Add\Remove Program. The default value is 0.
INSTALLEVEL
The INSTALLEVEL property sets the base level for all features whether they are installed or not; a feature is installed only if the value entered in the LEVEL field (in the Feature table) is less than or equal to the INSTALLEVEL property value.
If no value is specified, then it has the default value 1, and if the value in the LEVEL field is 0, that feature is neither installed nor displayed in the graphical interface.
LIMITUI
Setting this property leads to a very limited (basic) graphical interface. The default value is 0.
REBOOT
Setting this property suppresses the system restart request.
REBOOT value | Description |
Force | The UI always prompts the user with an option to reboot at the end of the installation. If there is no user interface, the system automatically reboots at the end of the installation. |
Suppress | Suppress prompts for a reboot at the end of the installation. The installer still prompts the user with an option to reboot during the installation whenever it encounters the ForceReboot action. If there is no user interface, the system automatically reboots at each ForceReboot. Reboots at the end of the installation are suppressed (for example the ones caused by an attempt to install a file in use). |
ReallySuppress | Suppress all reboots and reboot prompts initiated by ForceReboot during the installation. Suppress all reboots and reboot prompts at the end of the installation. It suppresses both the reboot prompt and the reboot itself. For example: It suppresses reboots caused by an attempt to install a file in use at the end of the installation. |
ROOTDRIVE
Setting this property specifies the default drive of the application installation location. The value of this property must end with “\”, for example “C:\”.
More information about Windows Installer Properties and how you can edit them with Advanced Installer can be found here.