ОК - эта проблема сводила меня с ума, - и я не нашел идеального ответа в Интернете.
Поэтому я решил, что все закончилось.
Возможно, это не «ЛУЧШИЙ» способ решения проблемы - я уверен, что есть какой-то изощренный способ «справиться с этим» на основе MSI, но я не смог понять это (думаю, яя тупой?)
По сути, мой установщик просто устанавливает .NET и копирует некоторые файлы в каталог Program Files, добавляет некоторые записи реестра, ярлыки и т. д.
Если у вас естьболее сложная процедура установки - я бы посоветовал вам найти «правильный» ответ в другом месте.Но для чего-то простого, как у меня (и я подозреваю, что 95% людей, борющихся с этой проблемой), это работает просто отлично.
Сначала - НИКОГДА не трогайте «Код продукта».Я считаю, что это правильная процедура для MSI по всем направлениям ... вы не должны менять код продукта.И это решение также зависит от этого.
Далее - Скопируйте код продукта в буфер обмена - он понадобится нам через секунду.
По сути, мы скажем InstallShield:ВСЕГДА УДАЛЯЙТЕ ПРОДУКТ, если он уже существует на компьютере.
Если вы или ваши партнеры когда-либо запускали установку БЕСПЛАТНО - убедитесь, что высделать это в обоих местах:
В поле «Имя файла и командная строка» введите:
msiexec /uninstall {YOUR PRODUCT CODE HERE} /passive
Вот и все.Теперь ваш установщик всегда удалит старую версию.
ПРИМЕЧАНИЕ. ЭТО ОТКЛЮЧАЕТ ЛЮБОЙ ВИД: «У меня установлена более новая версия программы установки» ПРОВЕРЬТЕ.