Я создаю обновляемый установщик с помощью WiX, который должен полностью удалить существующую программу перед установкой новой версии. У меня есть обновление файлов и добавление новой версии, но у меня осталось 2 экземпляра программы на экране «Установка и удаление программ». Ниже приведен пример того, как я пытаюсь удалить все.2 экземпляра программы после обновления с помощью WiX
<Product Id="064e9bca-dcf5-412d-9a8f-dafec3bd3406" Name="testInstall" Language="1033" Version="1.0.14" Manufacturer="testInstall" UpgradeCode="5dd5747f-c598-4133-8c7d-252ae3dee8a5">
<Package InstallerVersion="301" InstallPrivileges="elevated" InstallScope="perMachine" Compressed="yes" />
<Upgrade Id="5dd5747f-c598-4133-8c7d-252ae3dee8a5">
<UpgradeVersion Minimum="1.0.0"
IncludeMinimum="yes"
Maximum="1.0.13"
OnlyDetect="no"
Property="OLDERVERSIONBEINGUPGRADED" />
</Upgrade>
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallInitialize"/>
</InstallExecuteSequence>
Любая помощь, которая может быть оказана, будет оценена по достоинству.
Спасибо, что вы подтвердили мою теорию. Одна вещь, которую я обнаружил, заключалась в том, что один из файлов не удалялся из старой версии, когда предполагалось. Вы знаете какую-либо причину, по которой файл зависает, когда все остальные будут удалены? Я обнаружил, что это причина, поскольку она все еще привязана к старой версии, так что версия все еще была технически установлена. –
Установщик Windows хранит счетчик для каждого файла, который установлен более чем одним MSI. Этот файл будет удален только тогда, когда счетчик вернется к 0, то есть когда обе MSI будут удалены. – Nestor