Если вы используете проект установщика (проект установки VS), а не проект Clickonce, вам нужно позаботиться о сценарии последовательности установки uinstall / new самостоятельно.
Используйте Clickonce, если вы хотите, чтобы автоматическое обновление версий и возможности отката версий осуществлялись пользователем самостоятельно. В противном случае настройте проект и управляйте msiexec.exe самостоятельно.
Итак, чтобы уточнить ...
Вы можете добавить пользовательский класс установщика в состояние Install вашего проекта установки и выполнить удаление с помощью кода (на основе обнаружения, обнаружены ли какие-либо предыдущие версии в реестре / файловой системе).
Другой альтернативой (и проще для большинства) будет написание отдельного пакетного файла или сценария VBS (или PSH), который сначала запускает msiexec.exe / u "{GUID}", а затем msiexec.exe / i "{установщик}"