Visual Studio: как автоматически удалить предыдущую установленную версию?
У меня есть простой проект веб-настройки, который читается из развертываемого проекта.
Несмотря на то, что я установил установку DetectNewerInstalledVersion
в false
, я всегда получаю это раздражающее окно с предупреждением о том, что предыдущая установка существует, и мне нужно перейти в Control Panel
и найти программное обеспечение для его удаления...
Есть ли способ добавить script в новый новый диалог установки, который может сказать A previous version was found, press NEXT to uninstall it.
?
Ответы
Ответ 1
В моем случае я узнал, что проект установки не был частью диспетчера конфигурации.
Таким образом, он не был восстановлен при восстановлении решений и установлении файла с новой версией, а ProductCode не был создан.
Решение - это просто щелкнуть правой кнопкой мыши по проекту установки и нажать "перестроить".
Надеюсь, эта помощь будущим читателям:)
Ответ 2
Старые версии автоматически удаляются, если вы увеличиваете версию продукта и изменяете код пакета. Это нужно делать каждый раз, когда вы изменяете проект установки и создаете новый пакет.
Если вы сохраняете одну и ту же версию и код продукта, старые сборки не могут быть удалены автоматически. Они обнаруживаются установщиком Windows до того, как ваш новый пакет будет запущен. Поэтому вам нужно удалить их вручную.
Ответ 3
Ответ заключается не в том, чтобы использовать уже установленный проект установки Visual Studio. У меня такая же проблема: она не удаляет предыдущие версии, хотя я до версии, устанавливаю ее для удаления предыдущей версии, проверяю предыдущую версию и перестраиваю, я могу установить, но файлы не обновляются. Есть несколько хороших инструментов для этого там, проверьте bitrock, inno setup или wix.
Также Visual Studio 2010 была последней версией с поддержкой проекта. Он не включен в 2012 году.
Ответ 4
Создайте .bat файл
Напишите этот код:
wmic product where name="SetupProgramName" call uninstall /nointeractive
cd Debug
setup.exe
Поместите этот файл в каталог установщика.