Я пытаюсь выяснить, как Windows (XP до 7) обрабатывает установку и удаление файлов MSI. Я сталкивался с ситуациями, когда установщик Windows не может удалить приложение, поскольку в нем отсутствует исходный файл MSI, из-за чего я полагаю, что в нем хранятся копии всех установленных пакетов MSI. Где?
У меня была пара теорий.
Предполагается, что он будет находиться в той же папке, откуда он был установлен. Разделы реестра в
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
действительно указывают на исходную папку установки, и сообщения об ошибках, когда MSI-файл отсутствует, часто указывают на это. Удаление MSI-файла из этой папки не мешает процессу удаления, поэтому я отказался от этой теории.C:\Windows\Installer
, Эта папка на самом деле содержит кучу файлов MSI, которые выглядят случайным образом. Но этот список неполон. Я нахожу записи в разделе реестра, упомянутом в 1), который не имеет копии MSI в этой папке.
Так как же это работает? Как установщик Windows может удалить приложения, установленные MSI, даже если MSI не в 1), а не в 2)?