Thanks, I'll give it a test! I'll have to have another play with the installer projects in VS to rediscover how I used to tweak this stuff... if you can run a PowerShell script as part of your build process to modify the MSI, that would be an option also.
In addition - the reason why the shortcut is disappearing upon upgrade is the the RemoveExistingProducts action is sequenced right near the end in the InstallExecuteSequence table. Effectively, the old MSI is removed after the new one is installed, and because Windows Installer doesn't know about the shortcuts in the new version, the end up removed. Moving this action earlier in the sequence would resolve this. https://learn.microsoft.com/en-us/windows/win32/msi/removeexistingproducts-action
In addition - the reason why the shortcut is disappearing upon upgrade is the the RemoveExistingProducts action is sequenced right near the end in the InstallExecuteSequence table. Moving this action earlier in the sequence would resolve this. https://learn.microsoft.com/en-us/windows/win32/msi/removeexistingproducts-action
@dreichl I would recommend that you re-implement the Shortcut table, since you can address the original pinned shortcut issue using native MSI functionality. As discussed in the link you posted, the problem was due to 'advertised' shortcuts that encode component information specific to a particular MSI. It's been 20 years since I moved away from Visual Studio for creating MSI packages, so I'm not sure if they offer a simple way to change a property to make it create 'regular' shortcuts. You could...
Confirmed - the 2.59 MSI has a shortcut table, whereas the 2.60 MSI does not.