Checking the Installation of Features, Components, Files
If after running an installation, you need to verify that a particular feature, component, or file has been installed, turn on the verbose logging option during the installation. See Windows Installer Logging and Command Line Options.
The verbose log includes an entry for each feature and component the installation package may install. The log tells what the state of that feature or component was prior to the installation, what state was requested by the installation, and in what state the installer left the feature or component. Feature and component entries in the log appear as the following examples.
MSI (s) (40:A4): Feature: QuickTest; Installed: Absent; Request: Local; Action: Local MSI (s) (40:A4): Component: QuickTest; Installed: Absent; Request: Local; Action: Local
This verbose log indicates that:
- the installation state of the QuickTest feature and component was absent before running the package
- the package requested a local installation of these
- the feature and component were both left in the locally installed state after running the package.
The label "Installed" in the log refers to the current install state of the feature or component, "Request" refers to the requested install state of the feature or component. "Action" refers to the actual action state of the feature or component.
The following table lists the possible component or feature states that can appear in the log.
|Request: Null||No request.|
|Action: Null||No action taken.|
|Installed: Absent||Component or feature is not currently installed.|
|Request: Absent||Installation requests component or feature be uninstalled.|
|Action: Absent||Installer actually uninstalls component or feature.|
|Installed: Local||Component or feature is currently installed to run local.|
|Request: Local||Installation requests component or feature be installed to run local.|
|Action: Local||Installer actually installs component or feature to run local.|
|Installed: Source||Component or feature is currently installed to run from source.|
|Requested: Source||Installation requests that component or feature be installed to run from source.|
|Action: Source||Installer actually installs the component or feature to run from source.|
|Installed: Advertise||Feature is currently advertised. Components are never advertised.|
|Request: Advertise||Installation requests feature be installed as an advertised feature.|
|Action: Advertise||Installer actually installs the feature as an advertised feature.|
|Request: Reinstall||Installation requests feature be reinstalled. Components do not use reinstall state.|
|Action: Reinstall||Installer actually reinstalls feature.|
|Installed: Current||Feature is currently installed in the default authored install state.|
|Request: Current||Installation requests feature be installed in the default authored install state.|
|Action: Current||Installer actually installs the feature in the default authored install state.|
|Action: FileAbsent||Installer actually uninstalls component's files and leaves all other resources of the component installed.|
|Action: HKCRAbsent||Installer actually removes component's HKCR information. File and non-HKCR information remain.|
|Action: HKCRFileAbsent||Installer actually removes component's HKCR information and files. All other resources of the component remain.|
The verbose log has an entry for each file that may be installed by the package. The log tells what was done to the file and provides some explanation. File entries in the log appear as in the following example.
MSI (s) (40:A4): File: C:\Test\TESTDB.EXE; Won't Overwrite; Existing file is of an equal version
This log indicates that the installer will not overwrite the existing Testdb.exe file because the existing file is the same as the version being installed.
If you need to author an installation package that searches for an existing file or directory on the user's computer during an installation, use the method described in Searching for Existing Applications, Files, Registry Entries or .ini File Entries.