Property
|
Description
|
AdminProperties
|
A
semicolon-delimited list of properties that should be “filled in” when an
administrative install is performed. When the user later installs from the
Share
point, this list is used instead of the values originally in the Installer
database.
|
AdminToolsFolder
|
Full
path to the directory that stores a user’s administrative tools (for example,
Microsoft Management Console files).
|
AdminUser
|
Set to
True if the user has administrative privileges. Always set to True if running
on Windows 95 or Windows 98.
|
Alpha
|
Set to
the processor level if the Installer is running on an Alpha computer.
|
AppDataFolder
|
Full
path to the directory that stores the user’s application data.
|
BorderSide
|
Width
of a Windowsdialog box borders in pixels.
|
BorderTop
|
Height
of a Windows dialog box borders in pixels.
|
CaptionHeight
|
Height
of a Windows caption in pixels
|
ColorBits
|
Color
depth for the current video settings
|
CommonFilesFolder
|
Full
path to the directory that stores the user’s common files.
|
CommonAppDataFolder
|
Full
path to the directory that stores the user’s application data.
|
ComputerName
|
Name of
the computer where the installation is running. Set by the Installer by
calling the GetComputerName API.
|
CostingComplete
|
This
property is set to zero by the CostFinalize action. The Installer sets it to
1 when costing is completed.
|
Date
|
Current
date as a text string.
|
DefaultUIFont
|
The name
of the TextStyle to use by default on controls. You should set this in the
Property table.
|
DesktopFolder
|
Full
path to the current user’s desktop.
|
DiskPrompt
|
String
that the Installer uses to prompt for a new source disk.
|
EnableUserControl
|
Setting
this to 1 has the effect of making all public properties unrestricted.
|
FavoritesFolder
|
Full
path to the Favorites folder of the current user.
|
FontsFolder
|
Full
path to the system font’s folder.
|
Installed
|
Set to 1
if the product has already been installed for the current user, or on a
per-machine basis. Useful to detect when you’re in maintenance mode instead
of installing for the first time.
|
Intel
|
Set to
the processor level (4 for 486, 5 for Pentium, etc.) if the installation is
running on an
Intel-based
computer.
|
IsAdminPackage
|
Set to 1
if the current installation is being run from a package created by an
administrative installation.
|
LeftUnit
|
Set to 1
to display units to the left of numbers in such things as free space
displays.
|
LocalAppDataFolder
|
Full
path to the application data folder for nonroaming applications.
|
LogonUser
|
Name of
the current user, set by a call to the
GetUserName
API.
|
NetHoodFolder
|
Full
path to the Network Neighborhood folder. Although this property has been
dropped from the most recent SDK documentation, it still works.
|
Manufacturer
|
Manufacturer
of the product. You must set this property’s value in the Property table.
|
MyPicturesFolder
|
Full
path to the user’s My Pictures folder.
|
OLEAdvtSupport
|
Set to
True if the current system supports installon- demand and advertisement.
|
OutOfDiskSpace
|
Set to
True if any disk in the system doesn’t have enough free disk space for the
installation to complete.
|
OutOfNoRbDiskSpace
|
Set to
true if any disk in the system doesn’t have enough free disk space for the
installation to complete even if rollback is disabled.
|
PersonalFolder
|
Full
path to the current user’s Personal folder.
|
PhysicalMemory
|
Megabytes
of actual RAM installed in the current computer.
|
PIDTemplate
|
String
used as a template for the PIDKEY property.
|
Preselected
|
Set to 1
when the selection dialog has already been processed.
|
PrintHoodFolder
|
Full
path to the user’s Printer Neighborhood folder. Although this property has
been dropped from the most recent SDK documentation, it still works.
|
PrimaryVolumePath
|
Path
portion of the PRIMARYFOLDER property
|
PrimaryVolumeSpaceAvailable
|
Number
of bytes available on the primary volume, in units of 512 bytes.
|
PrimaryVolumeSpaceRequired
|
Number
of bytes required by all selected features on the primary volume, in units of
512 bytes.
|
PrimaryVolumeSpaceRemaining
|
Number
of bytes remaining after installation on the primary volume, in units of 512
bytes.
|
Privileged
|
Set to 1
when the installation is running with administrative privileges.
|
ProductCode
|
GUID
that identifies this product. You must set a value for this property in the
Property table.
|
ProductID
|
Set to
the product ID by the ValidateProductID action.
|
ProductLanguage
|
Language
ID to use for internal Installer strings displayed to the user.
|
ProductName
|
Name of
the product being installed. You must set a value for this property in the
Property table.
|
ProductState
|
Will
return –1 if the product is neither advertised nor installed, 1 if the
product is advertised but not installed, 2 if the product is installed but
for a different user, or 5 if the product is already installed for the
current user.
|
ProductVersion
|
Product
version represented as a string in the format 00.00.0000. You must set a
value for this property in the Property table.
|
ProgramFilesFolder
|
Full
path to the user’s Program Files folder.
|
ProgramMenuFolder
|
Full
path to the user’s Program folder in the Start menu.
|
RecentFolder
|
Full
path to the current user’s Recent folder. Although this property has been
dropped from the most recent SDK documentation, it still works.
|
RemoteAdminTS
|
Set to 1
when the system is configured for remote administration via Windows Terminal
Services.
|
ReplacedInUseFiles
|
Set to 1
if the Installer replaces a file that’s in use (thus requiring a reboot to
finish the installation).
|
RestrictedUserControl
|
Set to 1
if the user can’t change the value of restricted public properties.
|
RollbackDisabled
|
Set to 1
whenever rollback has been disabled by any means.
|
ScreenX
|
Width
of the screen (in pixels).
|
ScreenY
|
Height
of the screen (in pixels).
|
SecureCustomProperties
|
Semicolon-delimited
list of public properties that should be treated as restricted public
properties.
|
SendToFolder
|
Full
path of the Send To folder for the current user.
|
ServicePackLevel
|
Major
revision number of the most recent service
pack
applied to the operating system
|
ServicePackLevelMinor
|
Minor revision
number of the most recent service pack applied to the operating system.
|
SharedWindows
|
Set to 1
when the system is operating in shared
Windows
mode.
|
ShellAdvtSupport
|
Set to 1
if the operating system supports advertising.
|
SourceDir
|
The root
directory of the current installation package.
|
StartMenuFolder
|
Full
path to the current user’s Start Menu folder
|
StartupFolder
|
Full
path to the current user’s Startup folder.
|
System16Folder
|
Full
path to the Windows System folder.
|
SystemFolder
|
Full
path to the Windows System32 folder.
|
SystemLanguageID
|
Default
language for the system. The Installer sets this by calling the
GetSystemDefaultLangID API.
|
TempFolder
|
Full
path to the user’s Temp folder
|
TemplateFolder
|
Full
path to the user’s Templates folder
|
TerminalServer
|
Set to 1 when the
Installer is running on Windows
Terminal Server.
|
Time
|
Current
time in the format HH:MM:SS.
|
TTCSupport
|
Set to 1
if the system supports .ttc (TrueType
Font
Collection) files.
|
UILevel
|
2 for
none, 3 for basic, 4 for reduced, or 5 for the full user interface.
|
UpdateStarted
|
Set to 1
when changes have been made to the user’s system.
|
UpgradeCode
|
A GUID
representing allowable upgrades.
|
UserLanguageID
|
The
default language ID for the current user. The
Installer
sets this by calling the GetUserDefaultLangID API.
|
Version9X
|
If
running on Windows 95 or 98, this is set to 100 times the major version of
Windows plus the minor version of Windows.
|
VersionDatabase
|
Numeric
version of the Installer database for the package being installed.
|
VersionNT
|
If
running on Windows NT or Windows 2000, this is set to 100 times the major
version of Windows plus the minor version of Windows.
|
VirtualMemory
|
Size
of the current page file in megabytes.
|
WindowsBuild
|
Build
number of the operating system.
|
WindowsFolder
|
Full
path to the Windows folder.
|
WindowsVolume
|
Root
of the drive containing the Windows folder.
|
Friday, 3 August 2012
MSI Private Properties
Following are the list of Private Properties
RESTRICTED PUBLIC Properties
Following are the list of Restricted Public Properties
PROPERTY
|
DESCRIPTION
|
ACTION
|
Reflects the top-level action
being performed. Will be either INSTALL, ADVERTISE, or ADMIN.
|
AFTERREBOOT
|
Set to 1 after a reboot
initiated by the ForceReboot action
|
ALLUSERS
|
The ALLUSERS property
determines whether a per-machine or per-user
installation is done on Windows NT or Windows 2000
(it has no effect on Windows 95 or Windows 98). By default, all installations
are per-user. If ALLUSERS is set to 1 and the user has administrative privileges, a per-machine installation is performed; if the user does not
have administrative privileges, an error is returned. If ALLUSERS is set to 2
and the user has administrative privileges, a per-machine installation is
performed; if the user does not have administrative privileges, a per-user
installation is performed.
|
EXECUTEACTION
|
Set to the name of the
top-level action being executed, for example INSTALL or ADMIN.
|
EXECUTEMODE
|
Set to None for a dry run
that does not actually make any changes to the user’s system. Set to Script
to run the installation script. Any other value defaults to the Script
setting.
|
FILEADDDEFAULT
|
Comma-delimited list of files
to be installed in their default state.
|
FILEADDLOCAL
|
Comma-delimited list of files
to be installed locally.
|
FILEADDSOURCE
|
Comma-delimited list of files
to be installed to run from source.
|
INSTALLLEVEL
|
The level for which features
are selected to install by default. Defaults to 1 if not set.
|
LIMITUI
|
Set to 1 to limit the user
interface to the Basic level.
|
LOGACTION
|
Semicolon-separated list of
actions for which action data messages will be logged.
|
NOCOMPANYNAME
|
Set this to 1 to suppress the
Installer’s automatic filling in of the COMPANYNAME property. Useful if your
application needs to be sure it collects the current company name itself.
|
NOUSERNAME
|
Set this to 1 to suppress the
Installer’s automatic filling in of the USERNAME property. Useful if your
application needs to be sure it collects the current username itself.
|
PATCH
|
Full path of the current
patch package (if any).
|
PRIMARYFOLDER
|
The main directory for the
installation.
|
PROMPTROLLBACKCOST
|
Specifies how the installer
should handle low-disk conditions if running with no UI or the basic UI. Set
to P to prompt the user to disable rollback, D to disable rollback without
prompting, or F to fail with a warning that there is not enough disk space.
|
REBOOT
|
This property allows you to
control some of the reboot-prompting behavior. If set to “Force,” the Installer
automatically prompts for a reboot after install. If set to “Suppress,” the
Installer doesn’t prompt for a reboot unless it executes a ForceReboot
action. If set to “ReallySuppress,” the Installer doesn’t prompt for a reboot
even for a ForceReboot action.
|
REINSTALL
|
Comma-delimited list of
features to be reinstalled.
|
REINSTALLMODE
|
A string of letters showing
the actions to be performed by a reinstall. The default is “omus.”
|
RESUME
|
Set to 1 when the current
installation is a resumption of a previously suspended installation.
|
SEQUENCE
|
Specifies the name of a table
to be used by the SEQUENCE action.
|
SHORTFILENAMES
|
Set this property to 1 to
force the Installer to use short names for files and directories.
|
TRANSFORMS
|
List of transforms to be
applied during the installation.
|
TRANSFORMSATSOURCE
|
Set this property to 1 to
indicate that transforms are stored at the root directory of the
installation.
|
TRANSFORMSSECURE
|
Set to 1 to cache transforms
in a location where the user does not have write access.
|
PUBLIC Properties - MSI
Property
|
Description
|
ADVERTISE
|
A comma-delimited list of features to be advertised, or the value
“All.”
|
ADDDEFAULT
|
A comma-delimited list of features to be installed in their default
state.
|
ADDLOCAL
|
A comma-delimited list of features to be installed locally.
|
ADDSOURCE
|
A comma-delimited list of features to be installed to run from
source.
|
ARPAUTHORIZEDCDPREFIX
|
URL of the update channel for the application.
|
ARPCOMMENTS
|
Add/Remove Control Panel comments.
|
ARPCONTACT
|
Add/Remove Control Panel contact name.
|
ARPHELPTELEPHONE
|
Phone number for technical support.
|
ARPHELPLINK
|
URL for technical support.
|
ARPINSTALLLOCATION
|
Full path to the application’s primary folder, displayed by the
Add/Remove Control Panel applet.
|
ARPNOREPAIR
|
If set to 1, disables the repair button in Add/Remove Control Panel.
|
ARPPRODUCTICON
|
Foreign key to the Icon table specifying the icon to display in
Add/Remove Control Panel.
|
ARPREADME
|
Add/Remove Control Panel readme information.
|
ARPSIZE
|
Add/Remove Control Panel size of application in kilobytes.
|
ARPSYSTEMCOMPONENT
|
If set to 1, the application will not be displayed by the Add/Remove
Control Panel applet.
|
ARPURLINFOABOUT
|
URL for information on the product.
|
ARPURLUPDATEINFO
|
URL for information about product updates.
|
ARPNOMODIFY
|
If set to 1, disables Add/Remove Control
Panel repair functionality.
|
ARPNOREMOVE
|
If set to 1, disables Add/Remove Control Panel remove functionality.
|
AVAILABLEFREEREG
|
Desired bytes free in the Registry after calling the
AllocateRegistrySpace action.
|
CCP_DRIVE
|
Root path of the volume to be searched by the RMCPPSearch action.
|
COMPADDLOCAL
|
Comma-delimited list of Component IDs for components to be installed
locally.
|
COMPADDSOURCE
|
Comma-delimited list of Component IDs for components to be installed
to run from the source media.
|
COMPANYNAME
|
Name of the company of the user performing the installation. If this
isn’t set by another method, the Installer will read the value from the
Registry.
|
DISABLEADVTSHORTCUTS
|
If set to 1, the Installer will generate regular shortcuts instead of
advertised shortcuts.
|
DISABLEMEDIA
|
If set to 1, prevents the user from registering a different copy of
the installation source. Useful if you are setting up an administrative source
and want to ensure that all installs are from this source.
|
DISABLEROLLBACK
|
Set to 1 to disable all rollback processing, including the generation
of the rollback script.
|
PATCHNEWPACKAGECODE
|
New Package code to set for a product after a patch is installed.
|
PATCHNEWSUMMARYCOMMENTS
|
New comments property for a product after a patch is installed.
|
PATCHNEWSUMMARYSUBJECT
|
New subject property for a product after a patch is installed.
|
PIDKEY
|
The part of the product ID entered by the user.
|
REBOOTPROMPT
|
If set to S or Suppress, the Installer automatically reboots at each
reboot prompt, without actually prompting the user.
|
REMOVE
|
Comma-delimited list of features to be removed.
|
ROOTDRIVE
|
Default drive for the installation.
|
SOURCELIST
|
Semicolon-delimited list of available source
paths for the installation.
|
TARGETDIR
|
Root location where the Installer package will be copied by an
administrative installation.
|
USERNAME
|
Name of the user performing the installation. If this isn’t set by
another method, the Installer will read the value from the Registry.
|
Miscellaneous ICEs - MSI Validation
ICE07 checks that all fonts are being installed into the Fonts folder on the user’s computer.
ICE15 verifies the necessary reciprocal relationship between the MIME table
and the Extension table. Every entry in the MIME table must refer to an entry in the Extension table in its Extension_ column. The referenced entry in the Extension table must refer back to that same entry in the MIME table through its MIME_ column.
ICE25 checks merge module dependencies. It checks to be sure that all of the
merge modules listed in the ModuleDependency table are present, and that none of the merge modules listed in the ModuleExclusion table are present.
ICE29 verifies that all stream names within the Installer package are unique,
even after possible name truncation (the Installer stores a maximum of 62 characters for a stream name).
ICE36 checks the database for “icon bloat”—that is, for icons that are stored in the database but that are never used anywhere during the installation. If this ICE detects unused icons, you should remove them to shrink your Installer package.
ICE39 validates the Summary Information Stream in the database. It checks to make sure that all of the required properties are present in the stream, and that they have the appropriate data types.
ICE40 does three miscellaneous validations:
• It checks to be sure an Error table is present in the database.
• It checks the Property table to make sure you have not defined a property
named REINSTALLMODE.
• It checks the RemoveIniFile table to be sure that any Delete Tag entries specify the tag to delete.
ICE41 checks the Class and Extension tables to make sure that they do not conflict with the FeatureComponent table. The Class and Extension tables specify the Component and Feature for each row, and this information must match the associations between components and features in the FeatureComponent table.
ICE43 validates that non-advertised shortcuts refer to components that use a
Registry entry in HKEY_CURRENT_USER as their key path.
ICE45 compares Bit Field columns to the bit fields that are defined for the current release of the Installer. It makes sure that none of the bits that are currently reserved is set to 1. It performs this check in these tables:
• BBControl
• Control
• Dialog
• Feature
• File
• MoveFile
• ODBCDataSource
• Patch
• RemoveFile
• ServiceControl
• ServiceInstall
• TextStyle
ICE48 looks at the Directory table, checking for paths that are hard-coded to
local drives (for example, c:\Temp). Such paths can cause problems because the target machine won’t necessarily have such a path available. This is not a fatal error, because in some cases (for example, when installing to computers where you control the directory structure) this may be acceptable.
ICE50 warns you if you have an icon stored in files that do not have the extension .exe or .ico. Such icons won’t be correctly displayed by Windows. It also warns you if you have an icon for a shortcut that does not have the same extension as the target for that shortcut, because this would cause the shortcut to have an incorrect context menu.
ICE51 checks for problems with font titles. Fonts stored in ttf or ttc files (True- Type fonts) should have a null value in the FontTitle column of the Font table, because these fonts have a name embedded directly in the font file. Fonts stored in other types of files (such as fon files) should have an entry in the FontTitle column of the Font table, because these fonts do not contain embedded names.
ICE55 validates that all files and other objects referenced in the LockObject column of the LockPermissions table actually exist in the installation.
ICE56 checks the Directory table for several possible problems:
• There should be a single root directory.
• The root directory should be the TARGETDIR property.
• The SourceDir property should occur in the DefaultDir column.
ICE58 checks to make sure there are not too many entries in the Media table.
The Media table is limited to 80 rows.
ICE59 verifies that advertised shortcuts belong to components that are installed by the target feature of the shortcut. If this ICE fails, then advertised shortcuts will not function properly. Instead, they will launch the Installer to install the necessary component, but because the component isn’t associated with the feature that the shortcut calls the Installer will be unable to locate it.
ICE61 inspects the Upgrade table to make sure that upgrades will not try to
remove themselves or perform other illegal operations.
ICE62 checks the IsolatedComponent table for entries that might cause unexpected behavior. For example, it will detect isolated-shared components that are not properly set up for refcounting.
ICE64 checks for directory entries that will not be properly removed if an application is uninstalled.
ICE65 validates the format of entries in the Environment table.
ICE66 checks the database version (contained in the PageCount property of the Summary Information Stream) to make sure that it does not conflict with other information in the database. For example, the Upgrade table is processed by the version 1.1 Installer but not the version 1.0 Installer, and so should not occur in version 1.0 Installer databases.
ICE67 checks that the target of a non-advertised shortcut belongs to the same
component as the shortcut itself.
ICE71 validates that the Media table contains a row where the DiskID column
has a value of 1. This entry is necessary because the Installer itself always assumes that the .msi package is on disk 1.
ICE73 checks the product code, package code, and upgrade code in your
Installer database to make sure that these codes do not match any of those used in the Windows Installer samples. Copying the samples without changing the codes they contain is a common mistake, but breaks the rule that Installer packages should not reuse product, package, or upgrade codes from another product.
Subscribe to:
Posts (Atom)