Ответ 1
Используйте msiexec /x {guid product code}
. Если ваша база данных MSI запуталась, и это не сработает, попробуйте msizap
.
Я изучаю проект установки VS 2008, чтобы создать установку для нашего приложения С#. Я ошибся, пытаясь удалить exe сам во время удаления. Теперь я вручную удалил exe файл, но запись все еще находится в списке Add Remove Program. Я пытаюсь установить исправленную новую версию, но msi не позволяет мне это делать.
Как удалить старую версию вручную (я могу использовать regedit, без проблем)? Я использую машину XP. спасибо
EDIT: После того как я удалил свой подраздел в этой записи реестра, я все еще не могу установить более новую версию.
Используйте msiexec /x {guid product code}
. Если ваша база данных MSI запуталась, и это не сработает, попробуйте msizap
.
Если это подходящий небольшой файл обновления .mi для обновления предыдущей версии, который не удалось удалить, просто установите его с помощью msiexec /i updated.msi REINSTALLMODE=vomus
(и, возможно, также REINSTALL=ALL
). У vomus Windows Installer заменит старый пакет новым, а затем вы можете удалить его нормально.
Но, конечно, в наши дни все это необязательно с возможностью тестирования на виртуальной машине, которую вы можете просто вернуть...
Удалите запись установки в реестре. Возможно, вам придется узнать GUID из вашего проекта установки.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall OR
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
Проверьте также DisplayName, это может быть полезно, когда ваш продукт определил дружественное имя.
У меня была та же проблема, и исходный .msi-пакет отсутствовал для установки службы Windows. Я решаю это на следующих этапах:
После этого я мог успешно использовать новую версию .msi-пакета