Как вручную удалить установку MSI?

Я изучаю проект установки VS 2008, чтобы создать установку для нашего приложения С#. Я ошибся, пытаясь удалить exe сам во время удаления. Теперь я вручную удалил exe файл, но запись все еще находится в списке Add Remove Program. Я пытаюсь установить исправленную новую версию, но msi не позволяет мне это делать.

Как удалить старую версию вручную (я могу использовать regedit, без проблем)? Я использую машину XP. спасибо

EDIT: После того как я удалил свой подраздел в этой записи реестра, я все еще не могу установить более новую версию.

alt text

Ответ 1

Используйте msiexec /x {guid product code}. Если ваша база данных MSI запуталась, и это не сработает, попробуйте msizap.

Ответ 2

Если это подходящий небольшой файл обновления .mi для обновления предыдущей версии, который не удалось удалить, просто установите его с помощью msiexec /i updated.msi REINSTALLMODE=vomus (и, возможно, также REINSTALL=ALL). У vomus Windows Installer заменит старый пакет новым, а затем вы можете удалить его нормально.

Но, конечно, в наши дни все это необязательно с возможностью тестирования на виртуальной машине, которую вы можете просто вернуть...

Ответ 3

Удалите запись установки в реестре. Возможно, вам придется узнать GUID из вашего проекта установки.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall OR
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

Проверьте также DisplayName, это может быть полезно, когда ваш продукт определил дружественное имя.

Ответ 4

У меня была та же проблема, и исходный .msi-пакет отсутствовал для установки службы Windows. Я решаю это на следующих этапах:

  • Shell: sc удалить "Servicename"
  • Проверить реестр: HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services
  • Используйте инструмент "Revo Uninstaller", чтобы полностью удалить записи реестра для установки и удалить запись в Windows "Программа и функции"

После этого я мог успешно использовать новую версию .msi-пакета