Ознакомьтесь с документацией MSDN в таблице обновлений , в основном вам необходимо установить msidbUpgradeAttributesVersionMaxInclusive бит.
Вы не указываете, что используетечтобы создать свой установщик, если вы используете WiX 3.5 или более поздней версии, вы можете использовать MajorUpgrade/@AllowSameVersionUpgrades="yes"
, чтобы позаботиться об этом за вас.
Обратите внимание, что поскольку MSI игнорирует четвертуюполе версии продукта, если для этого атрибута установлено значение yes, также допускается понижение рейтинга, если первые три поля версии продукта идентичны.Например, версия продукта 1.0.0.1 будет «обновлена» до версии 1.0.0.2998, поскольку они рассматриваются как одна и та же версия (1.0.0).Это может привести к серьезным ошибкам, поэтому самый безопасный выбор - изменить первые три поля версии и пропустить этот атрибут, чтобы получить значение по умолчанию: no.
Обратите внимание, что вместо необходимости запоминать код пакета (настоящийболь, если вы используете автоматически сгенерированные коды пакетов с непрерывной интеграцией), следующий VBScript удалит пакет с именем , выполнив поиск по списку установленных продуктов и найдя сам код пакета.
Option Explicit
Dim productName, productCode, installer
productName = "My Application"
Set installer = Wscript.CreateObject("WindowsInstaller.Installer")
For Each productCode In installer.Products
If InStr(1, LCase(installer.ProductInfo(productCode, "ProductName")), LCase(productName)) Then Exit For
Next
If Not IsEmpty(productCode) Then
Dim WshShell, oExec
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.Exec("msiexec /x " & productCode & " /qb /l*v ""%temp%\UninstallApp.log"" ")
End If