Указание места удаления .msi в RemoveExistingProducts - PullRequest
2 голосов
/ 11 марта 2011

Я пишу установщик, использующий WiX 3.5 для последней версии нашего программного обеспечения. Установщик для предыдущих версий был написан с использованием InstallAware 8. Во время установки я хочу удалить старые версии, но InstallAware делает некоторые странные вещи, поэтому обычный метод RemoveExistingProducts не работает. Также не работает msiexec / x {PRODUCTCODE}.

Когда запускается RemoveExistingProducts, появляется диалоговое окно с вопросом о местонахождении MSI-файла из старой установки. Я могу найти его местоположение в реестре, и если я ввожу это местоположение в диалоговом окне, деинсталляция работает нормально. Однако я бы хотел, чтобы диалоговое окно не отображалось. Можно ли как-то указать RemoveExistingProducts, где его найти?

Ответы [ 3 ]

2 голосов
/ 11 марта 2011

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

1 голос
/ 23 мая 2014

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

Проверьте, существует ли определенная строка удаления, определенная для вашегостарая настройка:

HKEY_LOCAL_MACHINE \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows \ CurrentVersion \ Uninstall \ ВАША РУКОВОДСТВО ЗДЕСЬ \ UninstallString

Это наиболее распространенное местоположение, используемое Добавить / удалить апплет на панели управления .Если вы найдете здесь строку удаления, вы можете запустить удаление с помощью специального действия перед запуском новой установки.Немного некрасиво, я бы предпочел запустить процесс установки через setup.exe.

Другое расположение:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Installer \ UserData\ S-1-5-18 \ Продукты

Здесь вы найдете упакованные GUID.Проверьте под каждым GUID, а затем в " InstallProperties " для InstallSource .Этот путь является путем поиска, где механизм установки будет искать файл MSI, необходимый для удаления приложения.

0 голосов
/ 11 марта 2011

В ключе HKLM\Software\Microsoft\Windows\CurrentVerison\Uninstall\<GUID_or_product_name>\WindowsInstaller установлено значение 1, затем вам нужно заглянуть в HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\<mangled_guid>\InstallProperties\InstallSource, чтобы увидеть, где он считает, что MSI-файл кэшируется.По сути, убедитесь, что вы ищете правильное расположение реестра при поиске InstallSource.

...