MsiPatchMetadata Table

The MsiPatchMetadata Table contains information about a Windows Installer patch that is required to remove the patch and that is used by Add/Remove Programs.

Patches installed without this table present in the patch database (.msp file) cannot be removed, and are missing some information from Add/Remove Programs. The table must be in the database of the patch file and not in a transform in the patch.

The MsiPatchMetadata Table has the following columns.

Column Type Key Nullable
Company Identifier Y Y
Property Identifier Y N
Value Text N N

 

Columns

Company

The name of the company. An empty field (a Null value) indicates that the row contains one of the standard metadata properties of the Windows Installer. For more information, see the Remarks section of this topic.

By adding a row to the table and entering a company name in this field, you can add any company to extend the property set.

Property

The name of a metadata property.

Value

The value of the metadata property. This can never be Null or an empty string.

Remarks

Available in Windows Installer 3.0 and later.

Rows in the MsiPatchMetadata Table that contain a Null value in the CompanyName field refer to one of the following standard Windows Installer metadata properties.

Property Description
AllowRemoval Indicates whether or not the patch is an Uninstallable Patch. If the value field contains 0 (zero), the patch cannot be removed. If the value field contains one (1), the patch is an Uninstallable Patch.This property is registered and its value can be obtain by using the MsiGetPatchInfoEx function.
ManufacturerName Name of the manufacturer of the application.
MinorUpdateTargetRTM Indicates that the patch targets the RTM version of the product or the most recent major upgrade patch. Author this optional property in minor upgrade patches that contain sequencing information to indicate that the patch removes of all patches up to the RTM version of the product, or up to the most recent major upgrade patch. This property is available in Windows Installer 3.1 and later.
TargetProductName Name of the application or target application suite.
MoreInfoURL A URL that provides information specific to this patch. This property is registered and its value can be obtained by using the MsiGetPatchInfoEx function. Beginning with Windows XP with Service Pack 2 (SP2), this value can be the support link for the patch displayed in Add/Remove Programs.
CreationTimeUTC Creation time of the .msp file in the form of mm-dd-yy HH:MM (month-day-year hour:minute).
DisplayName A title for the patch that is okay for public display. This property is registered, and its value can be obtained by using the MsiGetPatchInfoEx function. Beginning with Windows XP with SP2, this value is the name of the patch that is displayed in Add/Remove Programs.
Description Brief description of the patch.
Classification A string value that contains the arbitrary category of updates as defined by the author of the patch. For example, patch authors can specify that each patch be classified as a Hotfix, Security Rollup, Critical Update, Update, Service Pack, or Update Rollup. This property is required.
OptimizeCA Indicates whether the Windows Installer should skip custom actions when applying the patch. This can reduce the time required to apply the patch. The OptimizeCA property can have one of the following values:
  • 0 - Do not skip any custom actions.
  • 1 - Skip property and directory assignment custom actions. Custom Action Type 35 and Custom Action Type 51 can be property and directory assignment custom actions.
  • 2 - Skip immediate custom actions that do not fall into the property or directory assignments. The immediate custom actions do not include msidbCustomActionTypeInScript option in the Type column of the CustomAction Table.
  • 4 - Skip custom actions that run within the script.
The value of OptimizeCA must be the same for all patches that are being installed or no custom actions are skipped. For example, if two patches are being installed, and OptimizeCA is set to the values 1 and 2 respectively, no custom actions are skipped.
The values of OptimizeCA can be combined when processing multiple new patches. If all patches have a 1 (one) included in the values, then all property and directory assignment custom actions are skipped. If one patch has the value 3 (three)for the property, and one patch has the value 1 (one) for the property, the property and directory assignment custom actions are skipped. However, the other immediate custom actions run, because not all of the patches requested are skipped.
OptimizedInstallMode If this property is set to 1 (one) in all the patches to be applied in a transaction, an application of the patch is optimized if possible. For more information, see Patch Optimization. Available beginning with Windows Installer 3.1.

 

Validation

ICE03
ICE06

Not Supported in Windows Installer 2.0 and earlier