when running your code in a test I got this warning
warning LGHT1076 : ICE57: Component
'CommonAppDataPathwaysFolderComponent'
has both pe r-user and per-machine
data with an HKCU Registry KeyPath.
and
The error in the log file whilst running your code is this
C:\Documents and Settings\All
Users\Application
Data\Pathways\Settings.xml; Overwrite; Won't
patch; Existing file is unversioned
and unmodified - hash doesn't match
source file
Which indicates the xml file component has per machine data (the xml file) with a per user registry key path.
Use the xml file as a keypath for the component like so:
<Component Id="CommonAppDataPathwaysFolderComponent" Guid="087C6F14-E87E-4B57-A7FA-C03FC8488E0D">
<CreateFolder>
<Permission User="Everyone" GenericAll="yes" />
</CreateFolder>
<RemoveFolder Id="CommonAppDataPathways" On="uninstall" />
<File Id="settingsXml" KeyPath="yes" ShortName="SETTINGS.XML" Name="Settings.xml" DiskId="1" Source="\\fileserver\Release\Pathways\Dependencies\Settings\settings.xml" Vital="yes" />
</Component>
This will make Windows Installer use unversioned file comparison when deciding whether or not to replace this file.
you have correctly scheduled RemoveExistingProducts action after the InstallFiles action which makes sure that the new versions are installed before removing the old versions.