Hi,
We we able to reproduce the problem and to solve it. As we thought, it was a timing issue, but it was not caused by MSI. Instead, it turns out, it's Starter.exe, which by default spawns a program and then quits without waiting for the child process to finish.
Fortunately, Starter.exe has "/s" parameter that makes it synchronous, i.e. makes it wait for started program to finish before Starter itself exists. So both register and unregister command line arguments in custom actions should start with "/s", like
Code:/s "[ProgramFilesFolder]\UltiDev\Web Server\UWS.RegApp.exe" /u /AppID="[UpgradeCode]
This should do it. We have updated
documentation accordingly.
Thank you for reporting this and our apologies for the inconvenience.
Best regards,
UltiDev Team.
Please donate at
http://www.ultidev.com/products/Donate.aspx to help us improve our products.