Подтвердить что ты не робот

Я прищурился, как я могу удалить свою программу?

Мой установщик Wix работал над установкой моей программы, но он был поврежден для удаления. Файл удаляется слишком рано, и он нуждается в дальнейшем в строке. Деинсталлятор терпит неудачу и возвращает изменения.

Это означает, что я не могу удалить пакет с моей машины и, следовательно, не могу установить дальнейшие сборки моего установщика (значительные неудобства). Как я могу принудительно удалить пакет?

4b9b3361

Ответ 1

  • Найдите свой пакет в C:\Windows\Installer, где Windows хранит копии установленных пакетов MSI. Имена генерируются случайным образом, поэтому вам нужно будет посмотреть даты создания файлов.

  • Откройте файл MSI с Orca.

  • Удалить нарушающее пользовательское действие из Таблица CustomAction

Теперь вы сможете удалить пакет.

изменить: в соответствии с @darkrock76 ниже, папка для шага 1 также может быть C:\ProgramData\Package Cache\. У меня есть оба на моей машине Windows 7 SP1. Я не мог сразу найти документацию об этом.

Ответ 2

В зависимости от конкретной причины описанного вами поведения у вас может быть как минимум пара опций.

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

msiexec /x {YOUR-PRODUCTCODE-HERE} RUNMYACTION=false

В этом примере RUNMYACTION - это свойство установщика Windows, которое участвует в пользовательском действии, и если вы передадите false в качестве значения, действие не будет выполняться.

В противном случае вы можете исправить логику (или просто отключить настраиваемое действие явно) и создать новый пакет MSI. Затем загрузите его на эту целевую машину и выполните следующие действия:

msiexec /i YourPackage.msi REINSTALL=ALL REINSTALLMODE=vomus

Здесь YourPackage.msi - новый фиксированный пакет, REINSTALL=ALL инструктирует msiexec переустанавливать продукт с помощью этого нового пакета, а REINSTALLMODE=vomus (часть v) будет повторно кэшировать MSI, и после этого вы сможете удалить его обычным способом.

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

Ответ 3

Эта команда обычно работает для меня:

msiexec /fv installer.msi

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

Однажды эта команда не работала, и мне пришлось использовать Microsoft FixIt. Это решило проблему (довольно шокирую для меня).

Ответ 4

FYI: в Windows 8.1 установщики были перемещены здесь: C:\ProgramData\Package Cache\

Ответ 5

Microsoft FixIt разобрал его для меня, я нашел детали в базе знаний.

Ответ 6

Если вы действительно в отчаянии, и все вышеперечисленные решения не работают, попробуйте

msizap.exe

Это приведет к стиранию всего, что ваш установщик поставил на машину
МАЛЕНЬКИЕ ПРЕДУПРЕЖДЕНИЯ

Не запускайте msizap, не зная, с какими параметрами вы хотите его запустить (для списка параметров сначала запускается msizap/?).

Ответ 7

Обычно я просто смотрю <Your Installer Name>.msi или <Your Installer Company Name> в реестре и удаляю некоторые из ключей удаления из некоторого из Products под деревьями установщика Windows, и все, что обычно работает нормально и dandy впоследствии, хотя это WOODD оставляют некоторые вещи, лежащие вокруг, как кэшированные инсталляторы, и, возможно, множество других разделов реестра для каждого установленного файла и т.д., Но его ВСЕГДА работали для меня при разработке инсталляторов, потому что честно, кто заботится, если один MSI оставлен и кэширован где-то? Вы все равно используете машину для разработки, верно?