Короткий ответ : Ответ, приведенный ниже, возможно, слишком сложный, просто удалите то, что находит ваша установка обновления, и попробуйте установить снова.
Из командной строки ( Ключ Windows + Нажмите R + Тип: cmd.exe
+ Введите ) и выполните следующую команду:
msiexec.exe /x {GUID-FROM-LOG-FILE}
Идентификатор GUID (наиболее вероятный) из вашего файла журнала: WIX_UPGRADE_DETECTED
.Затем попробуйте установить снова.
Failing Uninstall : Если удаление завершится неудачно, попробуйте запустить этот инструмент Microsoft FixIt .Иногда он может отсортировать настройки, которые не удаляются должным образом. Альтернатива, под капотом починка (не рекомендуется).
UpgradeTable : Первое, что я хотел бы сделать, эточтобы проверить, что находится в UpgradeTable
в скомпилированном файле MSI, который показывает проблему.Код обновления там совпадает с кодом обновления для вашей установки?(UpgradeCode entry
в Property Table
).
Содержимое UpgradeTable
определяет, какие существующие установки (если есть)обнаружены как связанные с вашей новой установкой.Если вы сконфигурируете странные вещи здесь, вы можете даже удалить конкурирующие продукты, ошибочно обнаруженные как связанные с вашими, - я бы не стал этого делать :-).Слишком много документов.
Удаление : Теперь, как избавиться от проблемы установки?Вам нужно получить GUID ProductCode.Есть множество способов получить эту информацию. Это должен быть GUID продукта, который вы видите в журнале MSI для WIX_UPGRADE_DETECTED
, поэтому попробуйте сначала:
msiexec.exe /x {GUID}
Вот ответ на удаление MSIнастройки в общем смысле (всевозможные варианты - читать?): Удаление MSI-файла из командной строки без использования msiexec .
ProductCode (GUID) : Роб уже упомянул правильный MSI API для перечисления установленных продуктов, я просто добавлю, что у меня есть этот ответ, который может помочь: Как мне найти GUID продуктаустановленной установки MSI? В ней перечислены несколько параметров, чтобы увидеть, что установлено на вашем устройстве.
VBScript / COM Automation : я просто добавлюПараметр VBScript из первой ссылки выше (в этом связанном ответе перечислены несколько параметров):
' Retrieve all ProductCodes (with ProductName and ProductVersion)
Set fso = CreateObject("Scripting.FileSystemObject")
Set output = fso.CreateTextFile("msiinfo.csv", True, True)
Set installer = CreateObject("WindowsInstaller.Installer")
On Error Resume Next ' we ignore all errors
For Each product In installer.ProductsEx("", "", 7)
productcode = product.ProductCode
name = product.InstallProperty("ProductName")
version=product.InstallProperty("VersionString")
output.writeline (productcode & ", " & name & ", " & version)
Next
output.Close
PowerShell : также добавляется параметр PowerShell.В некоторых случаях это может привести к неожиданному самовосстановлению.
get-wmiobject Win32_Product | Format-Table IdentifyingNumber, Name, LocalPackage -AutoSize