I have installation of version 1.1. I created upgrade with version 1.2. In both products I have 2 files:
<Component Win64="yes" Id="cmpFILE1" Guid="*">
<File Id="filFILE1" KeyPath="yes" Source="$(var.BasePathCMP)\Performance.dll" />
</Component>
<Component Win64="yes" Id="cmpFILE2" Guid="*">
<File Id="filFILE2" KeyPath="yes" Source="$(var.BasePathCMP)\LockLib.dll" />
</Component>
During the upgrade LockLib.dll is removed and not being replaced. In clean installation of 1.2 it is present. What can cause that behavior?
One of the reasons why this happens is because the action RemoveExistingProducts is being executed after the installation package performed the upgrade. In this case, the MSI detects the file is the same as in previous version and then removes it. You could:
I'd recommend option one.
RemoveExistingProducts Element