I guess I didn't explain well enough. The users do not run MyProgram.exe - or even MyProgram22.exe. They run a separate Launcher.exe. That program (it's tiny) checks a table to get the latest version & then it runs that & exits.

So - the user shortcut never changes.