I'm using a Setup project in VS 2005, and I've learned all about the "joys" of advertised shortcuts.
My project creates shortcuts to the program on the Desktop and Start Menu, and whenever those are run, the MSI re-installs the application (because installed files have changed). I've also created a file association for my application, which does the same thing.
I've figured out how to set up a vbscript that I can run post-build to disable advertised shortcuts (using DISABLEADVTSHORTCUTS=1), however, I am at a loss trying to figure out how to achieve the same functionality with file associations!
UPDATE: Let me explain what i'm doing and then you can tell me if there's a better way. I'm including a separate utility that my application depends on. I didn't want to add every single file of that utility as a dependency because it really clutters up the setup project, so I zipped it up and just added the zip.
I then run an Installer implementation and overrode OnAfterInstall to unzip the utility into the proper place, then delete the utility zip. It's the deletion of the utility zip that triggers the whole install/repair process when the advertised shortcut is run.
So I guess my solutions are either to A) disable advertised shortcuts and advertised file associations or B) get the MSI installer to not trigger an install/repair on the missing zip file.