В зависимости от точной причины поведения, которое вы описали, у вас может быть как минимум пара вариантов.
Если причиной сбоя является настраиваемое действие, которое запускается при удалении, и это настраиваемое действие обусловлено некоторыми свойствами, на которые вы можете влиять, вы можете попытаться передать нужное значение через командную строку:
msiexec /x {YOUR-PRODUCTCODE-HERE} RUNMYACTION=false
В этом примере RUNMYACTION
- это свойство установщика Windows, которое участвует в условии настраиваемого действия, и если вы передадите false
в качестве значения, действие не запустится.
В противном случае вы можете исправить логику (или просто явно отключить пользовательское действие) и собрать новый пакет MSI. Затем загрузите его на целевой компьютер и запустите так:
msiexec /i YourPackage.msi REINSTALL=ALL REINSTALLMODE=vomus
Здесь YourPackage.msi
- это новый фиксированный пакет, REINSTALL=ALL
инструктирует msiexec
переустановить продукт, используя этот новый пакет, и REINSTALLMODE=vomus
(его часть v
) повторно кэширует MSI-пакет, и вы сможете впоследствии удалить его обычным способом.
Примечание: вы должны проверить свою установку на виртуальной машине, чтобы не рисковать своей реальной.