Установщик Visual Studio не самый удобный для пользователя по сравнению с коммерческими продуктами или даже WiX, если вы после хорошего уровня контроля над вашей установкой.
Если у вас есть проект установки Visual Studio, у вас есть несколькосвойства, которые участвуют в процессе обновления
1) Код обновления - это ссылка между установщиками того же рода, и вы не должны менять этот код без необходимости
2) Номер версии- странно, что для сравнения используются только первые 3 цифры (major.minor.build) (это распространенная ошибка, которую допускают многие разработчики)
3) Код продукта - Как только вы измените версиюNumber VS предложит вам изменить это число - сделайте это - если вы автоматизируете изменение номера, не забудьте также сделать это
4) DetectNewerInstalledVersion - установить в True
5) RemovePreviousVersions - установить вПравда
Лично я бы посмотрел на использование WiX для такой небольшой установки, т.е. если вы можете сделать это в VisualStudio, тогда версия WiX
Мой установщик для OpenCover выглядит следующим образом
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" >
<Product Id="*" Name="OpenCover" Language="1033" Version="!(bind.FileVersion.OPENCOVER_FRAMEWORK_DLL)"
Manufacturer="OpenCover @ GitHub" UpgradeCode="2250c3f1-d9ba-44d8-b4db-25f91fe92dc6">
<Package InstallerVersion="200" Compressed="yes" />
<Upgrade Id="2250c3f1-d9ba-44d8-b4db-25f91fe92dc6">
<UpgradeVersion OnlyDetect="no" Property="PREVIOUSFOUND" Minimum="1.0.0.0" IncludeMinimum="yes"
Maximum="!(bind.FileVersion.OPENCOVER_FRAMEWORK_DLL)" IncludeMaximum="no" />
<UpgradeVersion OnlyDetect="yes" Property="NEWERFOUND" Minimum="!(bind.FileVersion.OPENCOVER_FRAMEWORK_DLL)"
IncludeMinimum="yes" />
</Upgrade>
<Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />
...
</Wix>
Надеюсь, вы найдете вышеуказанное полезным