![]() |
Параметр ARPSYSTEMCOMPONENT при установке MSI
Так случилось, что мне нужно установить программу, запакованную в MSI-инсталлер. А еще нужно, чтобы эта программа не светилась для удаления в "Программы и компоненты" в Панели управления. Звучит, вроде просто - прописывай параметр ARPSYSTEMCOMPONENT хотя бы в командной строке вкупе с MSI и все, но есть нюанс...
Инсталлер этот запускается другим инсталлером - ехе-шником. Оба этих инсталлера сами тоже запакованы в самораспаковывающийся ехе-архив, который тоже запускается не сам, а с помощью еще одного ехе-инсталлера. Второй и третий инсталлер не понимают команд, формата Windows Installer. В общем, структура еще та... Не подумайте, что я прячу троян или что-то подобное. Это я описал структуру запуска установки Adobe Muse CC. Как вы понимаете, воспользоваться параметром ARPSYSTEMCOMPONENT не разворошив весь этот муравейник невозможно. Увы, это не вариант. Отсюда вопрос: Что в реестре нужно вручную проделать, чтобы произвести работу, аналогичную параметру ARPSYSTEMCOMPONENT, то есть сокрытие иконки удаления в "Программы и компоненты", без разрушения самого механизма удаления программы? Для справки: ARPSYSTEMCOMPONENT - Prevents display of the application in the Programs List of the Add/Remove Programs in the Control Panel. Note This only affects the display in the ARP. The Windows Installer is still capable of repairing, installing-on-demand, and uninstalling applications through a command line or the programming interface. |
Сам спросил - сам же и отвечу.
Я искал нужный параметр реестра по пути HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall и не находил его. Поэтому и сюда обратился. Я не учел, что программа 32-битная, а система у меня 64-битная. И, следовательно, путь реестра, где находится нужный мне параметр, это HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall. |
Отредактировать MSI пакет, отключив создание пункта удаления приложения в "Программы и компоненты", например, с помощью ORCA, не вариант? Я так пару раз поступал и ничего страшного, что при этом у MSI слетает цифровая подпись (если она есть), сложности возникают только в том случае, если MSI защищен от редактирования (редкость). Деинсталляция приложения при этом реализовывается таким образом/командой (ярлыком или батником):
Код:
MSIEXEC.EXE /X {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} Код:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}] X - код продукта (Application ID). |
Цитата:
Цитата:
|
Цитата:
Цитата:
|
boss911, тут есть нюанс. Общий механизм удаления берет параметры удаления как раз-таки из реестра, из той самой ветки Uninstall. Именно поэтому требуется сокрытие, а не удаление. Не все программы в пакете на основе MSI-инсталлера, так что тут единый подход не работает. Впрочем, Muse с этим сверххитрым установщиком умудряется создавать в Uninstall аж два раздела. Один вида {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}, а второй - Adobe Muse. Так вот, если УДАЛИТЬ второй раздел, то общий механизм удаления работает, а персональный для Muse пропадает. То, что мне и нужно.
|
Время: 21:54. |
Время: 21:54.
© OSzone.net 2001-