Я использую проект установки в VS 2005, и я узнал все о "радостях" рекламируемых ярлыков.
Мой проект создает ярлыки для программы в рабочем столе и в меню «Пуск», и всякий раз, когда они запускаются, MSI переустанавливает приложение (поскольку установленные файлы изменились). Я также создал файловую ассоциацию для своего приложения, которая делает то же самое.
Я выяснил, как настроить vbscript, который я могу запустить после сборки, чтобы отключить объявленные ярлыки (используя DISABLEADVTSHORTCUTS = 1), однако я затрудняюсь понять, как добиться той же функциональности с файловые ассоциации!
UPDATE:
Позвольте мне объяснить, что я делаю, и тогда вы можете сказать мне, если есть лучший способ. Я включаю отдельную утилиту, от которой зависит мое приложение. Я не хотел добавлять каждый файл этой утилиты в качестве зависимости, потому что он действительно загромождает проект установки, поэтому я сжал его и просто добавил zip.
Затем я запускаю реализацию Installer и переопределяю OnAfterInstall, чтобы разархивировать утилиту в нужное место, затем удаляю zip утилиты. Это удаление служебной zip, которая запускает весь процесс установки / восстановления при запуске объявленного ярлыка.
Так что я думаю, что мои решения: а) отключить объявленные ярлыки и объявленные ассоциации файлов, или б) заставить установщик MSI не запускать установку / восстановление отсутствующего zip-файла.