To acquire background on Versioning and Component Rules, we recommend
Component Rules 101Windows Installer Components Introduction.
The following MSDN topics help folks understand the components rulesWhat happens if the component rules are broken? [Windows Installer]Changing the Component Code [Windows Installer]Organizing Applications into Components [Windows Installer]Defining Installer Components [Windows Installer]
At the core these rules are meant to represent the underlying requirements of COMThe Rules of the Component Object Model (COM General Technical Articles)
Generally the KeyPath column in the component table provides the version for the entire componentComponent Table [Windows Installer]
The version behavior is controlled by File Versioning Rules [Windows Installer]there are also these examples Neither File Has a Version [Windows Installer]One File Has a Version [Windows Installer]Neither File Has a Version with File Hash Check [Windows Installer]Both Files Have a Version [Windows Installer]Default File Versioning [Windows Installer]
Note: Uninstall is not constrained by versioning as when uninstalling a product Windows Installer will remove any version of the file that is already there if not referenced by another component registered on the system.
Darwin, while registering a typelib will unregister type library with the same major version number and the highest minor version number installed, i.e.:
Workaround: fix this by repairing the typelib registration on startup