Сообщение ProgID, x86, x64, MSI и Uninstall от 26.01.2019 20:30
Изменено 08.02.2020 18:24 DDDX
ProgID, x86, x64, MSI и Uninstall
Внезапно обнаружил чудную проблему с деинсталяцией COM-объектов.
Есть два MSI-пакета с COM-объектами: для 32 и 64 бит.
Оба ставятся и работают как ожидается.
При деинсталляции одного из них, перестает работать второй.
Исследование показало, что оба пакета создают ProgID-ы в HKCR.
И когда деинсталлируется любой из пакетов, он эти ProgID-ы удаляет.
Поэтому второй пакет перестает работать.
Если руками добавить удаленный ProgID (или выполнить repair второго пакета) то второй пакет снова начинает работать.
Я свято верил, что MSI (где-то) хранит счетчики использования ключей реестра и не удаляет их если счетчик не обнулен.
Нашел в сети вот этот древний топик, но решения не увидел
Как эта проблема решается?
Есть два MSI-пакета с COM-объектами: для 32 и 64 бит.
Оба ставятся и работают как ожидается.
При деинсталляции одного из них, перестает работать второй.
Исследование показало, что оба пакета создают ProgID-ы в HKCR.
И когда деинсталлируется любой из пакетов, он эти ProgID-ы удаляет.
Поэтому второй пакет перестает работать.
Если руками добавить удаленный ProgID (или выполнить repair второго пакета) то второй пакет снова начинает работать.
Я свято верил, что MSI (где-то) хранит счетчики использования ключей реестра и не удаляет их если счетчик не обнулен.
Нашел в сети вот этот древний топик, но решения не увидел
Как эта проблема решается?
ProgID, x86, x64, MSI и Uninstall
Внезапно обнаружил чудную проблему с деинсталяцией COM-объектов.
Есть два MSI-пакета с COM-объектами: для 32 и 64 бит.
Оба ставятся и работают как ожидается.
При деинсталляции одного из них, перестает работать второй.
Исследование показало, что оба пакета создают ProgID-ы в HKCR.
И когда деинсталлируется любой из пакетов, он эти ProgID-ы удаляет.
Поэтому второй пакет перестает работать.
Если руками добавить удаленный ProgID (или выполнить repair второго пакета), то второй пакет снова начинает работать.
Я свято верил, что MSI (где-то) хранит счетчики использования ключей реестра и не удаляет их если счетчик не обнулен.
Нашел в сети вот этот древний топик, но решения не увидел
Как эта проблема решается?
Есть два MSI-пакета с COM-объектами: для 32 и 64 бит.
Оба ставятся и работают как ожидается.
При деинсталляции одного из них, перестает работать второй.
Исследование показало, что оба пакета создают ProgID-ы в HKCR.
И когда деинсталлируется любой из пакетов, он эти ProgID-ы удаляет.
Поэтому второй пакет перестает работать.
Если руками добавить удаленный ProgID (или выполнить repair второго пакета), то второй пакет снова начинает работать.
Я свято верил, что MSI (где-то) хранит счетчики использования ключей реестра и не удаляет их если счетчик не обнулен.
Нашел в сети вот этот древний топик, но решения не увидел
Как эта проблема решается?