Custom Action Type 7
The Custom Action Type 7 is used with concurrent installations. Concurrent installations are not recommended for the installation of applications intended for release to the public. For more information about concurrent installations please see Concurrent Installations.
This custom action installs another installer package that is nested inside of the first package.
The database of the concurrent application is stored as a substorage of the package, and the name of the substorage is designated in the Source field of the CustomAction table.
|msidbCustomActionTypeInstall + msidbCustomActionTypeBinaryData||7|
The Target field of the CustomAction table contains property settings to be passed to the concurrent installation. These property settings can specify features.
The concurrent installation session runs as a separate thread in the current process. A concurrent installation cannot run asynchronously.
Options flags are available to control the potential multiple execution of custom actions. See Custom Action Execution Scheduling Options.
This custom action does not use this option.
The return status of user exit, failure, suspend, or success from a concurrent installation is processed in the same way as any other action. Note however that Windows Installer translates the return values from all actions when it writes the return value into the log file. For example, if the action return value appears as 1 in the log file, this means that the action returned ERROR_SUCCESS. For more information about this translation see Logging of Action Return Values.
Note that if a concurrent install has msidbCustomActionTypeContinue set, then a return of ERROR_INSTALL_USEREXIT, ERROR_INSTALL_REBOOT, ERROR_INSTALL_REBOOT_NOW, or ERROR_SUCCESS_REBOOT_REQUIRED is treated as ERROR_SUCCESS. This means that if you set msidbCustomActionTypeContinue and your concurrent installation requires a restart, the requirement for the restart will be ignored. Additionally, the error code from the concurrent installation custom action will be ignored.
If msidbCustomActionTypeContinue is not set, the following return codes plus ERROR_SUCCESS are treated as success and have the following meanings. Other return codes are treated as failure.
|ERROR_INSTALL_REBOOT||The restart flag will be set to restart at end of the installation.|
|ERROR_INSTALL_REBOOT_NOW||A restart is required before completing the installation. The restart will be processed immediately.|
|ERROR_SUCCESS_REBOOT_REQUIRED||A restart was required, but was suppressed.|
A conditional expression is required to enable the concurrent installation at either installation or removal of the associated component or feature.
- Concurrent Installations
- Custom Action Reference
- About Custom Actions
- Using Custom Actions
- Custom Action Return Values