Как очистить поврежденную или отсутствующую установку (не видно в добавлении / удалении программ): в другой версии этого продукта уже установлена ошибка
Я на Windows Server 2012, и что-то напутало. Я пытался удалить свое приложение из инструмента добавления / удаления программ. Когда я попытался сделать это, я увидел ниже сообщение об ошибке:
Поэтому я пошел дальше и удалил следующую запись реестра, с помощью которой Windows управляет списком всех установленных приложений в инструменте добавления / удаления программ:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{C14DB2B2-6089-4C96-A878-77BA377BABBF}]
На этом конкретном пути я смог выяснить, что C14DB2B2-6089-4C96-A878-77BA377BABBF
Guid Hive принадлежит моему продукту с помощью DisplayName
ключ внутри
После этого я перестал видеть свое приложение в окне инструмента добавления / удаления программ. Итак, я думал, что я закончил.
<< Обновить После просмотра ответа @Nikolay>>
Было два способа встретиться с ошибкой, с которой я столкнулся при попытке выполнить новую установку после этого беспорядка. Я объясняю оба маршрута:
- Когда я попытался установить приложение, запустив тот же
myapplication.msi
файл, затем он показывает экран ниже, когда я нажимаю кнопку "Далее" на экране приветствия. Кажется, что программа все еще установлена:
- В другом беспорядке мой MSI каким-то образом был переименован в процессе сборки, который начал испускать новое имя MSI
myapplication_x.msi
, Когда я попытался установить приложение, запустив недавно названныйmyapplication_x.msi
файл, то он дает мне показанное ниже сообщение об ошибке:
В общем, я не смог установить новый MSI моего продукта и ничего не увидел в окне "Установка и удаление программ". Кажется, я все еще что-то упускаю с точки зрения реестра. Может ли кто-нибудь помочь мне избавиться от этой проблемы, либо очистив еще несколько записей в реестре, либо каким-либо другим способом, если он существует, чтобы удалить следы установленного продукта на компьютере?
3 ответа
Удаление записи Uninstall\{xxxxxxxxx}
действительно не удаляет продукт. Это похоже на удаление ярлыка программы с рабочего стола. Это на самом деле не удаляет программу.
Попробуйте нажать "Удалить" вместо кнопки "Изменить" на панели управления "Добавить / удалить". Если есть только одна кнопка "Изменить / Удалить", то вы можете попробовать удалить программу из командной строки следующим образом:
> msiexec /x {C14DB2B2-6089-4C96-A878-77BA377BABBF}
В худшем случае, если вы полностью испортили свою систему, отредактировав реестр, может быть другой вариант: Инструмент MsiZap.exe (устаревшие, неподдерживаемые и небезопасные инструменты для использования), которые могут уничтожить все записи реестра для указанного MSI.
ОБНОВЛЕНИЕ: есть новый инструмент FixIt от Microsoft, который можно попробовать, если у вас есть приложения, которые не удаляются.
Эта ошибка указывает на то, что вы пытаетесь установить пакет, "связанный" с тем, который в данный момент находится на компьютере, без соответствующих инструкций для msiexec. Этот пакет предположительно представляет собой небольшое обновление или незначительное обновление (хотя, возможно, оно и не является действительным, и я буду особенно скептически относиться к любым последующим проблемам удаления). Обычно для установки такого обновления необходимо указать
msiexec /i myapplication.msi REINSTALL=all REINSTALLMODE=vomus
Или, как описал Николай, правильно удалите существующий пакет с msiexec /x {product-code}
(guid, который вы видели в разделе удаления реестра, - это код вашего продукта).
Если это не сработает, верните тестовую виртуальную машину в чистое состояние и начните сначала.
@ Ответ Николая помог мне решить мою проблему и был очень чистым подходом. но со временем, решая эту проблему, я нашел ключ реестра, который мог бы помочь, если ситуация на вашем компьютере более сложная. Удаление этого ключа реестра также помогло избавиться от этой проблемы. После удаления этого ключа реестра мой новый установщик начал работать.
Эта запись реестра присутствует в HKEY_CLASSES_ROOT
, Вам нужно будет найти нужный реестр, запустив поиск по названию вашего продукта на HKEY_CLASSES_ROOT
улей. Полный путь был как ниже:
[HKEY_CLASSES_ROOT\Installer\Products\2B2BD41C980669C48A8777AB73B7BAFB]
Примечание. Guid, показанный в указанном выше пути, - это не код продукта, а случайный гид, сгенерированный во время регистрации продукта при запуске программы установки.
Я только что упомянул этот путь в реестре на случай, если кто-то найдет его полезным в более запутанных ситуациях, таких как тот, в который я попал.