This is from Wise knowlegebase ==>
The Windows Installer enforces the following rules on components:
* No applications that share a component can require different versions of any of the resources (files, Registry keys, etc.) included in that component. This is another way of saying that components are invariant.
* All files in a component must be installed to a single folder. Files can't be installed to subfolders without being contained in separate components.
* A component can include at most one COM server. If a component includes a COM server, that file must be the key path for the component.
* A component can include at most one file that is the target for a Start Menu or Desktop Shortcut.
* No file can ever be included in more than one component. This rule applies not only across components in a single Installer database, but across products, version and even manufacturers. If you must include a file in a different component than the one in which it is already included, you must change the name of the file. The same rule applies to Registry entries, shortcuts, and other resources.
* If a component is not 100 percent backwards compatible with a pervious version, it must be assigned a new component code. If backwards compatibility hasn't been completely tested, you must assign a new component code.
* Because changing a component code amounts to defining a new component, when you change the component code, you must change the name of every file, Registry key, shortcut, and other resource in the component.
* Similarly, if you change the name of a file, you must change the component code for the component that contains that file, and then change the name of every other file and resource in that component.
* The version of a component is determined entirely by the version of the key path file. If the computer already contains a newer version of the key path file, the component will not be installed. The version of non-key path files in the component won't even be checked by the Installer.
===>
kip