Hi All, I've got this working now, but there is one major problem. It appears there is some form of race condition.
According to the MSI log my custom action is being run: Action 13:35:42: ca.RemovePreviousVersion32. Action start 13:35:42: ca.RemovePreviousVersion32. Action ended 13:35:49: ca.RemovePreviousVersion32. Return value 1. My CustomAction is: <CustomAction Id="ca.RemovePreviousVersion32" Property="UNINSTALL_EXE32" ExeCommand="/SILENT" Execute="immediate" Return="ignore" /> <InstallExecuteSequence> <Custom Action="ca.RemovePreviousVersion32" Before="InstallValidate">UNINSTALL_EXE32</Custom> </InstallExecuteSequence> Which as far as I can tell should be running the custom action syncronously and immediately before InstallValidate without checking the return value (I've tried other setting for the Return with the same effect). However, at the end of the MSI install files are missing from the install directory! It's as if the previous version uninstall has still been active after the MSI has written it's files to the install directory and then deleted them as well. I tried building an MSI that wrote to a different location and that worked. The MSI install was complete and working and the old version was un-installed as required. Any ideas would be great. Thanks, Jammer ------------------------------------------------------------------------------ Colocation vs. Managed Hosting A question and answer guide to determining the best fit for your organization - today and in the future. http://p.sf.net/sfu/internap-sfd2d _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users