Windows Installer
This documentation is intended for software developers who want to use Windows Installer to build installer packages for applications. If you’re looking for a redistributable for Windows Installer 4.5 and earlier, see this article. Note that there is no redistributable for Windows Installer 5.0. This version is included with the OS in Windows 7, Windows ServerВ 2008В R2, and later client and server releases (including Windows 10).
Microsoft Windows Installer is an installation and configuration service provided with Windows. The installer service enables customers to provide better corporate deployment and provides a standard format for component management. The installer also enables the advertisement of applications and features according to the operating system. For more information, see Platform Support of Advertisement.
This documentation describes Windows InstallerВ 5.0 and earlier versions. Not all the capabilities available in later Windows Installer versions are available in earlier versions. This documentation does not describe versions earlier than Windows InstallerВ 2.0. Installation packages and patches that are created for Windows InstallerВ 2.0 can still be installed by using Windows InstallerВ 3.0 and later.
Windows InstallerВ 3.0 and later, can install multiple patches with a single transaction that integrates installation progress, rollback, and reboots. The installer can apply patches in a specified order regardless of the order that the patches are provided to the system. Patching using Windows InstallerВ 3.0 only updates files affected by the patch and can be significantly faster than earlier installer versions. Patches installed with Windows Installer 3.0 or later can be uninstalled in any order to leave the state of the product the same as if the patch was never installed. Accounts with administrator privileges can use the API of Windows InstallerВ 3.0 and later to query and inventory product, feature, component, and patch information. The installer can be used to read, edit, and replace source lists for network, URL, and media sources. Administrators can enumerate across user and install contexts, and manage source lists from an external process.
Windows Installer 4.5 and later can install multiple installation packages using transaction processing. If all the packages in the transaction cannot be installed successfully, or if the user cancels the installation, the Windows Installer can roll back changes and restore the computer to its original state. The installer ensures that all the packages belonging to a multiple-package transaction are installed or none of the packages are installed.
Beginning with Windows Installer 5.0, a package can be authored to secure new accounts, Windows Services, files, folders, and registry keys. The package can specify a security descriptor that denies permissions, specifies inheritance of permissions from a parent resource, or specifies the permissions of a new account. For information, see Securing Resources. The Windows Installer 5.0 service can enumerate all components installed on the computer and obtain the key path for the component. For more information, see Enumerating Components. By Using Services Configuration, Windows Installer 5.0 packages can customize the services on a computer. Setup developers can use Windows Installer 5.0 and Single Package Authoring to develop single installation packages capable of installing an application in either the per-machine or per-user installation context.
Where applicable
Windows Installer enables the efficient installation and configuration of your products and applications running on Windows. The installer provides new capabilities to advertise features without installing them, to install products on demand, and to add user customizations.
Windows Installer 5.0 running on Windows ServerВ 2012 or WindowsВ 8 supports the installation of approved apps on WindowsВ RT. A Windows Installer package, patch, or transform that has not been signed by Microsoft cannot be installed on WindowsВ RT. The Template Summary property indicates the platform that is compatible with an installation database and in this case should include the value for WindowsВ RT.
Windows Installer is intended for the development of desktop style applications.
Developer audience
This documentation is intended for software developers who want to make applications that use Windows Installer. It provides general background information about installation packages and the installer service. It contains complete descriptions of the application programming interface and elements of the installer database. This documentation also contains supplemental information for developers who want to use a table editor or a package creation tool to make or maintain an installation.
Run-time requirements
Windows InstallerВ 5.0 is included with, Windows 7, Windows ServerВ 2008В R2, and later releases. There is no redistributable for Windows Installer 5.0.
Versions earlier than Windows Installer 5.0 were released with Windows ServerВ 2008, WindowsВ Vista, Windows ServerВ 2003, WindowsВ XP, and WindowsВ 2000. Windows Installer Redistributables are available for Windows Installer 4.5 and some earlier versions.
Windows InstallerВ 4.5 requires Windows ServerВ 2008, WindowsВ Vista, WindowsВ XP with Service PackВ 2 (SP2) and later, and Windows ServerВ 2003 with Service PackВ 1 (SP1) and later.
Windows InstallerВ 4.0 requires WindowsВ Vista or Windows ServerВ 2008. There is no redistributable for installing Windows InstallerВ 4.0 on other operating systems. An updated version of Windows InstallerВ 4.0, which does not add any new features, is available in WindowsВ Vista with Service PackВ 1 (SP1) and Windows ServerВ 2008.
Windows InstallerВ 3.1 requires Windows ServerВ 2003, WindowsВ XP, or WindowsВ 2000 with Service PackВ 3 (SP3).
Windows InstallerВ 3.0 requires Windows ServerВ 2003, WindowsВ XP, or WindowsВ 2000 with SP3. Windows InstallerВ 3.0 is included in WindowsВ XP with Service PackВ 2 (SP2). It is available as a redistributable for WindowsВ 2000 Server with Service PackВ 3 (SP3) and WindowsВ 2000 Server with Service PackВ 4 (SP4), WindowsВ XP RTM and WindowsВ XP with Service PackВ 1 (SP1), and Windows ServerВ 2003 RTM.
Windows InstallerВ 2.0 is contained in Windows ServerВ 2003 and WindowsВ XP.
Windows InstallerВ 2.0 is available as a package for installing or upgrading to Windows InstallerВ 2.0 on WindowsВ 2000. This package should not be used to install or upgrade Windows InstallerВ 2.0 on Windows ServerВ 2003 and WindowsВ XP.
Windows Installer
Windows Installer (установщик Windows) — подсистема Microsoft Windows, обеспечивающая установку программ (инсталлятор). Является компонентом Windows, начиная с Windows 2000; может доустанавливаться и на более ранние версии Windows. Вся необходимая для установки информация (иногда и вместе с устанавливаемыми файлами) содержится в установочных пакетах (installation packages), имеющих расширение .msi.
Содержание
История
Windows Installer был разработан в 1995—1998 годах и имел вначале кодовое название Darwin. Ранние версии назывались Microsoft Installer, отсюда стандартное расширение файла инсталляционного пакета — .msi. [1]
Первая версия Installer’а вышла в начале 1999 в качестве инсталлятора Microsoft Office 2000. В конце того же года Installer стал частью Windows 2000. Майкрософт всячески поощрял переход разработчиков на новый инсталлятор, включив в список требований к программам, желающим получить так называемый знак Windows 2000 Logo, требование устанавливаться с помощью Windows Installer.
Windows Installer оказался значительным шагом вперёд по отношению к предыдущему инсталлятору Microsoft — Setup API (ACME Setup): в нём были введены возможности GUI, поддержка деинсталляции и отката в любой момент установки (включая откат во время деинсталляции), корректная работа с правами доступа в Windows и другие возможности, что сделало его сильной альтернативой различным существовавшим на рынке инсталляционным пакетам.
Логическая структура пакета
Компонента (component) — минимальная неделимая установочная единица, представляющая собой группу файлов, значений реестра, создаваемых папок и других элементов, объединённых общим именем (именем компоненты) и либо устанавливаемых вместе, либо не устанавливаемых. Компоненты скрыты от конечного пользователя. Каждая компонента имеет ключевой путь (key path) — например, имя своего главного файла — по которому определяется наличие этой компоненты на компьютере пользователя.
Возможность (feature; в русифицированной версии Windows именно это слово переводится как «компонента», что вносит путаницу) — это иерархическая группа компонент и/или других возможностей. Когда при установке показывается диалог выбора устанавливаемых частей программы, пользователь управляет выбором именно возможностей. Выбор возможности для установки влечёт за собой установку всех компонент, которые в неё включены.
Физическая структура пакета
Файл .msi представляет собой составной документ OLE (OLE compound document — в том же формате-контейнере хранятся документы Microsoft Word, Excel и т. д.), в котором содержится небольшая реляционная база данных — набор из нескольких десятков взаимосвязанных таблиц, содержащих различную информацию о продукте и процессе установки. При этом все строковые данные в базе хранятся вместе в отдельном потоке документа, а в таблицах базы на них имеются ссылки; таким образом избегают дублирования строк, что значительно уменьшает размер базы.
Процесс установки
Процесс установки состоит из нескольких этапов — сбора информации, выполнения (собственно установки), а также, возможно, отката (в случае ошибки или отмены установки пользователем).
Действия
Каждый этап установки состоит из последовательности действий (actions), записанной в базе данных. Действиям присвоены номера, определяющие порядок их выполнения, а иногда — и условия, при которых действия выполняются или не выполняются.
Большая часть действий — это стандартные действия, характерные для типичного процесса сбора информации и установки. Все эти действия документированы. Кроме них, пользователь может определить и свои дейстия (custom actions).
Действия, определённые пользователем, могут быть либо написаны на одном из скриптовых языков, встроенных в операционную систему (VBScript), либо размещаться в специально созданной C, C++ и т. д.). Файлы с этими действиями помещаются внутрь файла .msi и извлекаются оттуда в начале запуска инсталляции.
Сбор информации
На этапе сбора информации Windows Installer собирает инструкции (либо путём взаимодействия с пользователем, либо программным путём) установить или удалить одну или несколько возможностей, входящих в продукт. Эти инструкции в дальнейшем формируют на основе базы данных внутренний сценарий, детально описывающий последующий этап выполнения.
Этот этап называют также непосредственным режимом (immediate mode).
Выполнение
К началу этого этапа инсталлятор генерирует внутренний сценарий, предназначенный для выполнения без вмешательства пользователя. Этот сценарий выполняется инсталлятором в привилегированном режиме службы NT (конкретно — под аккаунтом LocalSystem). Привилегированный режим требуется из-за того, что инсталляция могла быть запущена пользователем, не обладающим необходимыми правами для изменения системных параметров и файлов (хотя право установить программу ему было предоставлено).
Этот этап иногда называется отложенным режимом (deferred mode).
Откат
Если какое-либо из действий, определённых в сценарии, оканчивается неудачей, или установка в процессе отменяется пользователем, все действия, выполненные до этого места, откатываются, возвращая систему в состояние, бывшее до установки. Откат обеспечивается наличием для каждого действия, вносящего изменение в систему, обратного к нему. Вводя в пакет нестандартные действия, программист также должен создать обратные к ним для правильной работы отката.
Папка Installer в C:\Windows постоянно растёт, набирая по 10 гб в день
У меня внезапно исчезло всё свободное место на системном разделе C:\
А всё потому, что папка windows весит 75гб, из которых папка Installer весит 60гб
Почистив диски, кеш, файлы, отключив восстановление, гибернациют и тп, я вырвал 12 гб свободного места, которые через пару перезагрузок растворились, хотя никаких новых программ я не устанавливал и не совершал запись новых файлов в раздел C:\
В итоге C:\Windows\Installer весит порядка 63гб опять, отожравшись за один день. Проверял из безопасного режима с флешки — руткитов, вирей и прочей дряни нету и не было никогда. Хочу заметить, правда, что последние дни каждая перезагрузка сопутствуется статусом «Обновить и перезагрузить», после чего не происходит никаких обновлений либо от 1 до 50 якобы обновлений устанавливается, при чём моментально(даже 50).
У меня есть предположение, что проблема в том, что система пытается установить «пустые» либо битые обновления из-за сбоя в реестре, как бы постоянно пытаясь завершить установку, которая никогда не заканчивается, плодя мегабайты занятого воздухом пространства. Правда не знаю где копать и как исправлять. ПОМОГИТЕ!
Ответы (20)
* Попробуйте выбрать меньший номер страницы.
* Введите только числа.
* Попробуйте выбрать меньший номер страницы.
* Введите только числа.
Удалите файлы обновлений.
Нажмите сочетание клавиш Win+X, выберите Командная строка (администратор), введите команду:
DISM /online /Cleanup-Image /SpSuperseded
Нажмите клавишу Enter на клавиатуре и дождитесь завершения выполнения.
Удалите содержимое временной папки пользователя.
Нажмите сочетание клавиш Win+R, введите:
Нажмите кнопку OK, отобразится папка Temp, откройте ее, выделите любой элемент, нажмите на клавиатуре сочетание клавиш Ctrl+A (чтобы все выделить), далее удалите все элементы.
Удалите содержимое временной папки Windows.
Откройте диск (C:), папку Windows, найдите папку Temp и откройте ее, нажмите на клавиатуре сочетание клавиш Ctrl+A (чтобы все выделить), далее удалите все элементы.
Затем очистите все содержимое корзины. Также можно удалить программы через Панель управления — Удаление программ. Смотрите правее, там указывается объем каждой программы.
Дополнительно по очистке диска смотрите статью Куда пропадает свободное место на системном разделе? Вадима Стеркина.
34 польз. нашли этот ответ полезным
Был ли этот ответ полезным?
К сожалению, это не помогло.
Отлично! Благодарим за отзыв.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв, он поможет улучшить наш сайт.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв.
Не понял, при чём тут вышеописанные методы и папка Installer и проблема с реестром и/или логическими таблицами? Ваш ответ не имеет отношения к теме и является оффтопом. С уважением.
По прежнему ищу решение!
43 польз. нашли этот ответ полезным
Был ли этот ответ полезным?
К сожалению, это не помогло.
Отлично! Благодарим за отзыв.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв, он поможет улучшить наш сайт.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв.
5 польз. нашли этот ответ полезным
Был ли этот ответ полезным?
К сожалению, это не помогло.
Отлично! Благодарим за отзыв.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв, он поможет улучшить наш сайт.
Насколько Вы удовлетворены этим ответом?
Благодарим за отзыв.
Ещё раз процитирую свой пост для Вас и постараюсь дать расширенные, ещё более подробные комментарии с яркими акцентами, чтобы вы наконец поняли в чём проблема.
У меня внезапно исчезло всё свободное место на системном разделе C:\
Внезапно означала примерно следующее: у меня было порядка 40-50 гигабайт свободного места. Не устанавливая никаких программ, приложений etc. оно уменьшилось за пару дней почти до нуля
Почистив диски, кеш, файлы, отключив восстановление, гибернациют и тп, я вырвал 12 гб свободного места
Под «почистив диски» я подразумевал включительно и встроенную стандартную утилиту очистки диска, не считая ручного и автоматизированного поиска и удаления ненужных файлов, которые кстати не имеют отношения к папке Installer. Ведь данный топик именно об этой папке, а не о папках типа Temp или каких либо других. Также я использовал утилиту MicrosoftFixit.ProgramInstallUninstall в попытках выявить «бытые» инсталляции.
я вырвал 12 гб свободного места, которые через пару перезагрузок растворились
С помощью вышеописанных мною методов и потуг, я освободил достаточно приличный и большой объём памяти на диске, который снова исчез, а папка Installer вновь выросла на эти самые 12 гб, при том, что новых программ на компьютер я не устанавливал. Поэтому очевидный вам источник роста «из-за программ» не подходит по контексту проблемы.
Хочу заметить, правда, что последние дни каждая перезагрузка сопутствуется статусом «Обновить и перезагрузить», после чего не происходит никаких обновлений либо от 1 до 50 якобы обновлений устанавливается, при чём моментально(даже 50).
Извините, если я слишком напорист, но пока я не увидел информации по существу, возможно и по той причине, что я не совсем корректно и читабельно излагал свои мысли и техническую информацию. Постараюсь впредь быть более внятным и избегать витиеватостей.
Хочу заметить что по поисковым запросам, а также основываясь на мнених многих знакомых и моём личном довольно богатом опыте использования разных операционных систем, есть вероятность что проблема берёт своё начало в ошибках реестра и/или из-за сбоя в таблице разделов
А пока что, я реквестирую решение этой проблемы. Моих знаний не хватает для полной диагностики