The PublishComponent table associates components listed in the Component table with a qualifier text-string and a category ID GUID. Components with parallel functionality that have been grouped together in this way are referred to as qualified components. See Qualified Components. This provides the installer with a method for single-level indirection when referring to components. See Using Qualified Components.
The PublishComponent table has the following columns.
A string GUID that represents the category of components being grouped together. Note that this column's title is misleading. This is the GUID for the category of qualified components and is not the same GUID appearing in the ComponentId column of the Component table. Here it refers to a server that provides the functionality of a component to external clients rather than the component itself.
A text string that qualifies the value in the ComponentId column. A qualifier is used to distinguish multiple forms of the same component, such as a component that is implemented in multiple languages. These are the qualifier text-strings returned by MsiEnumComponentQualifiers.
External key into column one of the Component table. This identifier refers to the qualified component's record in the Component table.
An optional localizable text describing the qualified component of this record. The string is commonly parsed by the application and can be displayed to the user. It should describe the qualified component. This can be retrieved with MsiEnumComponentQualifiers.
External key into column one of the Feature table. This is the feature using this qualified component.
Note that the name of this table is misleading. This table is not required in order to author advertisement. See the Attributes column of the Component table and Feature table for information on how to set the installation state of components to advertise.