Указание места удаления.msi в RemoveExistingProducts

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

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

3 ответа

Решение

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

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

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

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

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

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

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Installer \ UserData \ S-1-5-18 \ Products

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

В 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.

Другие вопросы по тегам