Я намагаюся з'ясувати, як Windows (XP через 7) обробляє інсталяцію та видалення файлів MSI. Я прийшов у ситуаціях, коли інсталятор Windows не може видалити, тому що відсутній оригінальний файл MSI, що змушує мене вважати, що він зберігає копію всіх встановлених пакетів MSI де-небудь. Де?
У мене було кілька теорій.
Він очікує, що він буде перебувати в тій же папці, з якої він був встановлений. Розділи реєстру в
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
вказує на початкову інсталяційну папку, і повідомлення про помилки, коли файл MSI відсутній, часто вказують на це. Видалення файлу MSI з цієї папки не перешкоджає процесу видалення, тому я відмовився від цієї теорії.C:\Windows\Installer
. Ця папка фактично містить купу начебто випадково називаних файлів MSI. Але цей список є неповним. Я знаходжу записи в реєстрі, згаданому в 1), який не має копії MSI в цій папці.
Як же це працює? Як Windows Installer може видалити MSI-встановлені програми, навіть якщо MSI не в 1), а не в 2)?