I don't know if the accepted answer actually answers the question. I have the same problem where I have different versions of the same software, all with xyz.exe.
Maybe it worked for older versions of Windows but for Windows 10, adding a "FriendlyAppName" value to the "HKEY_CLASSES_ROOT\Applications\xyz.exe" key will still result in all versions of the software having the same name, although now you have the wrong version number for all but one of them.
Note: You can find the registry by typing in 'regedit' in the start search bar.
After much searching and testing, the MUICache seems to be where Windows grab the FriendlyAppName.
A warning note: I'm not sure whether changing values in the MUICache has any adverse effects and also not sure how often the cache gets refreshed and the changes you made gets rewritten.
Key:
- [HKEY_CURRENT_USER\Software\Classes\Local
Settings\Software\Microsoft\Windows\Shell\MUICache]
- There may be other MUICache key locations in the registry, not entirely sure
Values:
- "[Install_Folder 1.0]xyz.exe.FriendlyAppName"="xyz 1.0"
- "[Install_Folder 2.0]xyz.exe.FriendlyAppName"="xyz 2.0"
- etc...
Back to the key HKEY_CLASSES_ROOT\Applications\xyz.exe, if renaming .exe files doesn't break anything, you could rename them to have the version numbers e.g. xyz_1.0.exe.
Then you can add HKEY_CLASSES_ROOT\Applications\xyz_version_num.exe keys with the correct FriendlyAppName values.
All that being said, the installers of software that will most likely have multiple versions installed should just take care of this for us instead of us having to modify the registry ourselves...