●
If the Component table’s component field is left
null, justification must be documented.
●
There must not be more than one COM server
included per component.
●
If a component contains a COM server, this must
be the KeyPath for the component.
●
No two
components should share the same KeyPath.
●
There must not be more than one file specified
per component as a target for the Start menu or a Desktop shortcut.
Do
not keep more than one critical file on same component as you won’t be able to
keep all as key-paths, which is mandatory.
In
case of multiple critical files, make separate component for each of them.
●
Components
should not contain multiple EXE’s, DLL’s, OCX’s, CHM’s, or HLP’s.
●
Only one
ODBC Data Source or INI file should be specified per component.
●
Only one
Shortcut should be included in a component.
●
In general, all ICE errors should be fixed. Only
exceptions are ICE33 and ICE36 warnings.
●
If ICE
errors can’t be fixed they have to be documented
Troubleshooting
Tips: check the KEY PATH of each affected component, when the application is
not running, as it is the KEY PATHS of every component that are
checked during application startup, and any missing KEY PATHS trigger the
repair of the entire feature which holds the component.
Typical
causes are components that are hard coded to install to a specific user
profile, instead of installing by reference to the current user's profile.
Since users do not usually have access to other user's profiles, such self
healing operations will fail each time, and therefore will continue to happen
at every future application startup.
Component Table:
KeyPath: The KeyPath is a reference to a
file or registry key which is used to detect if the component is already
installed. This becomes important when you repair or uninstall a component. To
find out if the component is already installed MSI checks if the registry key
or file referenced by the KeyPath property does exist.
Directory:
This is the directory where the component will install. This field is not editable.
This is the directory where the component will install. This field is not editable.
Comments
Post a Comment