Metrolog / ITG.MetrControl.2.3

.msi пакет для распространения в рамках домена продукта АИС Метроконтроль версии 2.3
1 stars 0 forks source link

При установке проверять и удалять регистрацию progExt_auto_file ProgId #7

Closed sergey-s-betke closed 11 years ago

sergey-s-betke commented 11 years ago

Если до установки приложения открыть файл .csmdb23, Windows 8 автоматически зарегистрирует в реестре пользователя ProgId csmdb23_auto_file и свяжет тип файла с этим ProgId. Кроме того, в реестре проводника так появится ассоциация с указанным ProgId (OpenWithProgId).

Посему при установке следует проверять наличие подобных записей в реестре пользователя (именно - пользователя), и удалять их. А для того, чтобы все эти действия были выполнены под каждым пользователем, в качестве ключа следует использовать реестр пользователя.

Склоняюсь к тому, что при установке всю ветку .csmdb из реестра проводника лучше просто удалить.

sergey-s-betke commented 11 years ago

Оформить это решение лучше в виде отдельного файла, и подключать созданную в нём группу компонентов в приложения пакета, в моём случае - во все.

sergey-s-betke commented 11 years ago

Ещё один момент - функции самовосстановления пакета будут инициированы только при его запуске, которого не будет, пока не будет применена процедура "очистки", здесь описанная. Посему это решение поможет только после явного нажатия "Восстановить" в аплете установки и удаления программ.

sergey-s-betke commented 11 years ago

О реестре проводника: речь идёт о следующей ветке:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.csmdb23\OpenWithProgids]
"RCN.CSM.Bootstrapper.2.3"=hex(0):

Выше приведено корректное и достаточное содержание. Мне кажется целесообразным банальное удаление ветки HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.csmdb23.

sergey-s-betke commented 11 years ago

Кроме этого, из реестра пользователя (даже если установка осуществляется на машину) следует удалять лишние записи из ветки SOFTWARE\Classes\.csmdb23. Как минимум - из OpenWithProgIds, и как минимум - удалять запись csmdb23_auto_file. Ну и собственно SOFTWARE\Classes\.csmdb23\csmdb23_auto_file тоже следует удалять.