I've used Wix to create an installer for a C# WinForms app that I wrote.
I've since implemented the UpgradeCode and MajorUpgrade tags to allow upgrades.
All the reading I've done seems to suggest that the only thing that Windows Installer uses to determine which application to uninstall during an upgrade, it simply the UpgradeCode and Version.
Given that most people are using GUIDs from online generators, the possibility of a clash seems hard to ignore to me. But no one ever seems to raise this...
Surely Windows Intaller would also make sure to check other simple things, like the name of the application, the path etc.? (it doesn't seem to from what I've read).
It just seems so potentially easy to have UpgradeCode GUID clash with an existing application and thus incorrectly remove an unrelated product?
Or am I missing something very, very obvious?
Random GUIDS are statistically unique. Now some people (cough cough Office team) get cute and embed SKU meaning into their GUIDs. This greatly reduces the uniqueness and yet even they are just fine.
Not much to worry about here. MSI has been in use for 24 years and conflicts have been non existent.