Installerdu что это за программа


TopDownloads - - InstallerDU-2.4.2.9633_windriver.exe

 
 
 
»
»
: - , Noi...
Firefox 56.0.2 ...
: Sally's Salon - Beauty Secrets....
TechSmith Snagit 2018 ...
: 2 - ...
The Source 1
Various Artists At Last 6
avast free antivirus 54
Flo Rida 24
dj freek 1
frolov 1
timo 3
» »

»

. . . . .

InstallerDU-2.4.2.9633_windriver.exe

:
Tweet
- - I - IN
  : InstallerDU-2.4.2.9633_windriver.exe »  : 941 784 (919.71 K)  : 14/02/2017 | : 19/10/2017 :  89 »

» PAD »

:  http://du2.carambis.com/e4c2/InstallerDU-2.4.2.9633_windriver.exe   : http://du2.carambis.com   Download Master.
: 0
...
. .
, . , , ! - , , , , - !
7
1 Download Master 6.14.2... 11711
2 Convertilla 1303
3 Adobe Flash Player 15 1135
4 ccsetup536.exe 1107
5 Avast! ( ... 486
6 Dr.Web CureIt! 4.44 409
7 388.00-desktop-win10-6... 387
8 ccsetup535.exe 379
9 K-Lite_Codec_Pack_1360... 358
10 KVRT.exe 275
11 Viber 3.0.0.3606 227
12 Mozilla Firefox 16 192
13 Ace_Stream_Media_3.0.2... 185
14 install_flash_player_p... 171
15 VirtualBox-5.2.0-11843... 168
»

topdownloads.ru

Windows Installer - это... Что такое 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 и другие возможности, что сделало его сильной альтернативой различным существовавшим на рынке инсталляционным пакетам.

Логическая структура пакета

Инсталляционный пакет описывает установку одного продукта и имеет свой компонент (components) (тоже имеющих свои GUIDы), сгруппированных в возможности (features).

Компонента (component) — минимальная неделимая установочная единица, представляющая собой группу файлов, значений реестра, создаваемых папок и других элементов, объединённых общим именем (именем компоненты) и либо устанавливаемых вместе, либо не устанавливаемых. Компоненты скрыты от конечного пользователя. Каждая компонента имеет ключевой путь (key path) — например, имя своего главного файла — по которому определяется наличие этой компоненты на компьютере пользователя.

Возможность (feature; в русифицированной версии Windows именно это слово переводится как «компонента», что вносит путаницу) — это иерархическая группа компонент и/или других возможностей. Когда при установке показывается диалог выбора устанавливаемых частей программы, пользователь управляет выбором именно возможностей. Выбор возможности для установки влечёт за собой установку всех компонент, которые в неё включены.

Физическая структура пакета

Файл .msi представляет собой составной документ OLE (OLE compound document — в том же формате-контейнере хранятся документы Microsoft Word, Excel и т. д.), в котором содержится небольшая реляционная база данных — набор из нескольких десятков взаимосвязанных таблиц, содержащих различную информацию о продукте и процессе установки. При этом все строковые данные в базе хранятся вместе в отдельном потоке документа, а в таблицах базы на них имеются ссылки; таким образом избегают дублирования строк, что значительно уменьшает размер базы.

Кроме базы, структура файла .msi предусматривает помещение туда пользовательских сценариев и вспомогательных .cab. Файлы можно размещать и отдельно от пакета, в запакованном или распакованном виде (с сохранением структуры каталогов).

Процесс установки

Процесс установки состоит из нескольких этапов — сбора информации, выполнения (собственно установки), а также, возможно, отката (в случае ошибки или отмены установки пользователем).

Действия

Каждый этап установки состоит из последовательности действий (actions), записанной в базе данных. Действиям присвоены номера, определяющие порядок их выполнения, а иногда — и условия, при которых действия выполняются или не выполняются.

Большая часть действий — это стандартные действия, характерные для типичного процесса сбора информации и установки. Все эти действия документированы. Кроме них, пользователь может определить и свои дейстия (custom actions).

Действия, определённые пользователем, могут быть либо написаны на одном из скриптовых языков, встроенных в операционную систему (VBScript), либо размещаться в специально созданной C, C++ и т. д.). Файлы с этими действиями помещаются внутрь файла .msi и извлекаются оттуда в начале запуска инсталляции.

Сбор информации

На этапе сбора информации Windows Installer собирает инструкции (либо путём взаимодействия с пользователем, либо программным путём) установить или удалить одну или несколько возможностей, входящих в продукт. Эти инструкции в дальнейшем формируют на основе базы данных внутренний сценарий, детально описывающий последующий этап выполнения.

Этот этап называют также непосредственным режимом (immediate mode).

Выполнение

К началу этого этапа инсталлятор генерирует внутренний сценарий, предназначенный для выполнения без вмешательства пользователя. Этот сценарий выполняется инсталлятором в привилегированном режиме службы NT (конкретно — под аккаунтом LocalSystem). Привилегированный режим требуется из-за того, что инсталляция могла быть запущена пользователем, не обладающим необходимыми правами для изменения системных параметров и файлов (хотя право установить программу ему было предоставлено).

Этот этап иногда называется отложенным режимом (deferred mode).

Откат

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

Прочие возможности

Анонсирование и установка по требованию

Журнал установки

Другие системы инсталляции

Примечания

См. также

Wikimedia Foundation. 2010.

dic.academic.ru

What is InstallerDU.exe ? InstallerDU.exe info

. We have seen about 43 different instances of InstallerDU.exe in different location. So far we haven't seen any alert about this product. If you think there is a virus or malware with this product, please submit your feedback at the bottom.

Is InstallerDU.exe using too much CPU or memory ? It's probably your file has been infected with a virus. Let try the program named

to see if it helps.

If you encounter difficulties with InstallerDU.exe , you can uninstall the associated program (Start > Control Panel > Add/Remove programs

Let try to run a system scan with Speed Up My PC to see any error, then you can do some other troubleshooting steps.

  Path Product Name Vendor Version Size MD5 1 C:\Documents and Settings\username\Mes documents\Downloads\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94211 5EB3F05603C24E4AD37AE64CE3512364 2 C:\Users\username\AppData\Local\Temp\Temp1_810f1d4e8d2049830d471f2247016f993a42df00.zip\InstallerDU.exe Carambis Installer Carambis (MEDIA FOG LTD.) 1.0.0.2 94160 5407AE541E40A9968B80878512EE7065 3 C:\Users\username\Desktop\085ff44f188d3831a3414c4adcbc308822d10bf7\InstallerDU.exe Carambis Installer Carambis (MEDIA FOG LTD.) 1.0.0.2 94160 5407AE541E40A9968B80878512EE7065 4 C:\Users\username\Downloads\S2703enx\InstallerDU.exe Carambis Installer Carambis (MEDIA FOG LTD.) 1.0.0.2 94160 5407AE541E40A9968B80878512EE7065 5 C:\Users\username\Desktop\0e17b7d443b38be2a88dc15ef320e8618bd4843b\InstallerDU.exe Carambis Installer Carambis (MEDIA FOG LTD.) 1.0.0.2 94160 5407AE541E40A9968B80878512EE7065 6 C:\Users\username\Desktop\Download\d411e04e6f1de390caa4873180f4b8d513e279c6\InstallerDU.exe Carambis Installer Carambis (MEDIA FOG LTD.) 1.0.0.2 94160 5407AE541E40A9968B80878512EE7065 7 C:\Users\username\Desktop\soundlabs013\InstallerDU.exe Carambis Installer Carambis (MEDIA FOG LTD.) 1.0.0.2 94160 5407AE541E40A9968B80878512EE7065 8 C:\Documents and Settings\username\Belgelerim\Downloads\6-12_xp_dd_ccc_wdm_enu_38463\InstallerDU.exe Carambis Installer Carambis (MEDIA FOG LTD.) 1.0.0.2 94108 E00A6F02C1E28A857370F23F124F58B7 9 C:\Documents and Settings\username\My Documents\Downloads\Compressed\200962194538\InstallerDU.exe Carambis Installer Carambis (MEDIA FOG LTD.) 1.0.0.2 94108 E00A6F02C1E28A857370F23F124F58B7 10 C:\Documents and Settings\username\Desktop\InstallerDU.exe Carambis Installer Carambis (MEDIA FOG LTD.) 1.0.0.2 94108 E00A6F02C1E28A857370F23F124F58B7 11 C:\Documents and Settings\username\Bureau\Nouveau dossier (2)\InstallerDU.exe Carambis Installer Carambis (MEDIA FOG LTD.) 1.0.0.2 101123 FDDCF65B1D850C69FF51B324E9379DDF 12 C:\Users\username\AppData\Local\Temp\Temp1_cm281_w2k.zip\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94211 5EB3F05603C24E4AD37AE64CE3512364 13 C:\Users\username\Desktop\212520e41fb89ccc1053a59a34e713f732fd7991\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94211 5EB3F05603C24E4AD37AE64CE3512364 14 C:\Users\username\AppData\Local\Temp\Temp1_78c370d2a1dabc6eee6c735c82d4538e6e647692.zip\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94211 5EB3F05603C24E4AD37AE64CE3512364 15 C:\Users\username\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94211 5EB3F05603C24E4AD37AE64CE3512364 16 C:\Users\username\AppData\Local\Temp\Temp1_d411e04e6f1de390caa4873180f4b8d513e279c7.zip\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94211 5EB3F05603C24E4AD37AE64CE3512364 17 C:\Documents and Settings\username\Mes documents\Downloads\.ptmp162520\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94211 5EB3F05603C24E4AD37AE64CE3512364 18 C:\Users\username\Downloads\g-360-2-0-0-6\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94211 5EB3F05603C24E4AD37AE64CE3512364 19 C:\Users\username\Downloads\Compressed\3501_4501_drv_pcl5-nt40-9x-me-xp-w2k_uk\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94211 5EB3F05603C24E4AD37AE64CE3512364 20 E:\drivers win 7\DR_NX1001_111307[00F]_vista\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94211 5EB3F05603C24E4AD37AE64CE3512364 21 C:\Users\username\Downloads\f5d7001v13xx\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94211 5EB3F05603C24E4AD37AE64CE3512364 22 C:\Users\username\AppData\Local\Temp\Rar$EXa0.207\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94211 5EB3F05603C24E4AD37AE64CE3512364 23 C:\Users\username\AppData\Local\Temp\Rar$EXa0.428\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94211 5EB3F05603C24E4AD37AE64CE3512364 24 C:\Users\username\AppData\Local\Temp\7zO0CFBFBA0\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94211 5EB3F05603C24E4AD37AE64CE3512364 25 C:\Documents and Settings\username\Escritorio\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94211 5EB3F05603C24E4AD37AE64CE3512364 26 C:\Users\username\AppData\Local\Temp\Temp1_503227e5a386d0655503dc531ef09d3e882305bd1[1].zip\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94211 5EB3F05603C24E4AD37AE64CE3512364 27 C:\Users\username\Desktop\20070419083726031_driver_20070322\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94211 5EB3F05603C24E4AD37AE64CE3512364 28 C:\Users\username\AppData\Local\Temp\Rar$EXa0.018\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94178 CBD72591B8D015F2BC2115C62F781D16 29 C:\Users\username\AppData\Local\Temp\Rar$EXa0.895\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94178 CBD72591B8D015F2BC2115C62F781D16 30 C:\Users\username\AppData\Local\Temp\Rar$EX00.110\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94178 CBD72591B8D015F2BC2115C62F781D16 31 C:\Users\username\AppData\Local\Temp\Rar$EXa0.251\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94178 CBD72591B8D015F2BC2115C62F781D16 32 C:\Users\username\AppData\Local\Temp\Rar$EXa0.800\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94178 CBD72591B8D015F2BC2115C62F781D16 33 C:\Users\username\Downloads\ICM_110405_Setup\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94178 CBD72591B8D015F2BC2115C62F781D16 34 C:\Users\username\AppData\Local\Temp\Rar$EXa0.742\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94178 CBD72591B8D015F2BC2115C62F781D16 35 C:\DOCUME~1\ss\LOCALS~1\Temp\Temporary Directory 1 for 87b32de3fc11cf11cf8bc8e32f031b03c81641f4.zip\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94178 CBD72591B8D015F2BC2115C62F781D16 36 C:\Users\username\Downloads\Compressed\49756d000f660a6fd7accddbe58344a35677d156\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94178 CBD72591B8D015F2BC2115C62F781D16 37 C:\Drivers\lenovo\085ff44f188d3831a3414c4adcbc308822d10bf7\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94178 CBD72591B8D015F2BC2115C62F781D16 38 C:\Users\username\Documents\rtl8188ce\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94178 CBD72591B8D015F2BC2115C62F781D16 39 C:\Users\username\Downloads\mp210svst64100aea24\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94178 CBD72591B8D015F2BC2115C62F781D16 40 C:\Users\username\AppData\Local\Temp\Temp1_d5f2b697ee83c1ea0bfb0062f9c89108a4387468.zip\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94178 CBD72591B8D015F2BC2115C62F781D16 41 C:\Users\username\Downloads\2a05ef9aca086122da2a1659666b91bddedc34a3\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94178 CBD72591B8D015F2BC2115C62F781D16 42 C:\Users\username\Desktop\New folder\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94178 CBD72591B8D015F2BC2115C62F781D16 43 C:\Users\username\AppData\Local\Temp\Rar$EXa0.032\InstallerDU.exe Carambis Installer Carambis (ROSTPAY LTD.) 1.0.0.2 94178 CBD72591B8D015F2BC2115C62F781D16              

www.processchecker.com

Технология Windows Installer



Технология Windows Installer

Часть I. Обзор возможностей

Автор: Алифанов АндрейThe RSDN GroupИсточник: RSDN Magazine #3
Опубликовано: 10.04.2003Исправлено: 26.02.2006Версия текста: 1.0

Предисловие

Данной статьей я начинаю цикл статей, посвященных технологии Windows Installer от Microsoft. Эта статья носит по большей части обзорный характер. В процессе изучения темы я обнаружил, что найти нужную информацию на русском языке практически невозможно. Более того, и на английском языке, за исключением первоисточников в MSDN, очень мало полезной информации. Скромно надеюсь, что данный цикл статей исправит этот пробел.

Технология Windows Installer возникла не на пустом месте, поэтому, прежде чем погрузиться в ее изучение, оглянемся назад лет на 10-15.

Немного истории

"Золотые" времена DOS

Если мы вернемся в "золотые" времена DOS, то обнаружим, что в то время каждая фирма-поставщик программного обеспечения извращалась по-своему. Не было никакого общего интерфейса пользователя, никаких унифицированных приемов работы с ПО (я не рассматриваю счастливых владельцев компьютеров от фирмы Apple с единым уже в то время пользовательским интерфейсом). Поэтому неудивительно, что не было и единой технологии инсталляции программных продуктов.

Время шло – появилась первая версия Windows (на мой взгляд – просто интересная игрушка), за ней – вторая. Миру ПК попытались дать унифицированный пользовательский интерфейс (пока неудачно), но с точки зрения технологии инсталляции ничего не изменилось: каждый производитель ПО продолжал удивлять нас разнообразными несовместимыми друг с другом инсталляторами.

Ситуация немного начала меняться к лучшему с выходом Windows 3.0, которая наконец-то стала стандартом де-факто пользовательского интерфейса для ПК. Но… с точки зрения инсталляции ничего не изменилось. По-прежнему не было единой базы программ, установленных на компьютере, и не было никакого API для создания унифицированных, совместимых друг с другом и, самое главное, надежных программ инсталляции.

Поэтому вполне естественно, что отсутствие интегрированного решения от поставщика операционной системы позволило занять эту нишу сторонним компаниям-разработчикам. Наиболее известные из них – InstallShield Software и WiseSolutions. Эти компании принесли унифицированный интерфейс в мир программ-инсталляторов и сыграли немалую роль в формировании у пользователей представления о том, как должна выглядеть и вести себя программа инсталляции сложного программного продукта.

Windows 95

И вот в 1995 году вышла совершенно новая версия Windows (по утверждению Microsoft, многие авторитетные источники считают, что действительно новой была версия Windows со скромным номером 3.11, а Windows 95 всего лишь принесла новый пользовательский интерфейс). В этой версии Windows появилось важное новшество: единая база установленных программ.

Но, кроме хранения списка установленных программ и возможности запуска внешних программ инсталляции, эта версия Windows ничего больше не предложила. В результате осталась нерешенной проблема с различными версиями библиотек динамической компоновки (далее по тексту - DLL), с переписыванием системных DLL и т.д.

Следующие версии Windows не принесли ничего нового, немногим лучше оставалась ситуация и в WindowsNT. Технология Setup API, унаследованная еще от Windows 3.x, была очень ограниченной и использовалась (впрочем, используется и сейчас) в основном для установки различных драйверов.

Приход Windows 2000

Настоящий прорыв в области управления инсталляцией программ произошел с появлением Windows2000, которая принесла с собой очень много нового. Я не буду рассматривать все новшества, а упомяну только те, что касаются управления инсталляцией программ: это Windows File Protection и… Windows Installer. Эти технологии тесно связаны друг с другом. Первая позволяет решить извечную проблему Windows: так называемый DLL Hell. Вторая, которой собственно и посвящена эта статья, гораздо шире и сложнее. Рассмотрению вопроса, что же такое Windows Installer, для чего, где и как применяется, и будет посвящена оставшаяся часть статьи.

Windows Installer - новое слово в технологиях инсталляции

Глоссарий

Прежде, чем продолжить, необходимо ввести минимально необходимый для понимания дальнейшего текста набор терминов, используемых в Windows Installer. Таблица ниже включает список, достаточный для понимания текста данной статьи, в следующих статьях при необходимости будут добавлены новые термины.

ТерминКраткое описаниеВнешний пользовательский интерфейсВстроенный пользовательский интерфейсПатч (заплата)Инсталляционная база данныхИнсталляция по требованиюКод пакетаКомпонентОбновлениеОперацияОпцияОценка стоимостиОткатПакет (модуль) инсталляцииПодключаемый модульПользовательская операцияСвойствоСтандартная операцияТаблицы последовательности установкиТрансформацияУровень базового пользовательского интерфейсаУровень инсталляцииУровень полного пользовательского интерфейсаУровень сокращенного пользовательского интерфейсаSQL (Structured Query Language)
Пользовательский интерфейс, не использующий встроенные возможности Windows Installer. Такой интерфейс использует, например, инсталлятор Microsoft Visual Studio .NET.
Пользовательский интерфейс, основанный на встроенных возможностях Windows Installer. Инсталляторы с таким интерфейсом работают в режиме Мастера, то есть инсталляция выполняется пошагово. Такой интерфейс используют, например, инсталляторы Microsoft Office 2000 и XP.
Метод обновления файлов на уровне изменения байтов, а не замены файла целиком. Применяется при мелких обновлениях.
Реляционная база данных, содержащая всю необходимую логику и данные для установки приложения
Служба Installer, позволяющая устанавливать приложение или его опции только, когда их запрашивает пользователь или другое приложение
Глобально уникальный идентификатор (GUID) пакета (модуля инсталляции)
Наименьшая часть инсталляции, обрабатываемая инсталлятором, а также часть функциональности приложения с точки зрения программиста
Установка самой последней версии приложения
Инкапсуляция некоторой типичной функции, выполняемой во время инсталляции или обновления приложения.
Часть функциональности приложения, видимая со стороны пользователя
Метод, используемый Windows Installer для оценки дискового пространства, необходимого приложению
Автоматическое восстановление оригинальной конфигурации компьютера при сбоях в установке
Состоит из .msi-файла и внешних, связаных с ним файлов. Содержит всю логику, необходимую для установки и удаления приложения.
База данных, содержащая наборы компонентов. Позволяет создавать пакеты инсталляции из готовых наборов компонентов. Отдельно устанавливаться не может.
Операция, определенная разработчиком пакета инсталляции.
Глобальная переменная, используемая Windows Installer при инсталляции приложения
Встроенная в Windows Installer предопределенная операция, например, CreateShortcuts или InstallFiles.
Таблицы в инсталляционной базе данных, задающие правила установки
Шаблон изменений, используемый для добавления или замены элементов исходной базы данных. Применяется, например, для замены языка приложения.
Уровень, при котором Windows Installer обеспечивает простой пользовательский интерфейс с немодальными диалогами. На этом уровне недоступно использование пользовательских диалогов.
Уровень, задаваемый для каждой инсталляции. Приложение устанавливается только если его уровень меньше или равен уровню инсталляции. Таким образом, можно управлять инсталляцией наборов приложений.
Уровень, при котором можно задействовать все встроенные возможности пользовательского интерфейса Windows Installer
Уровень, при котором Windows Installer обеспечивает интерфейс с немодальными пользовательскими диалогами. Также могут использоваться встроенные модальные диалоги для сообщений об ошибках.
Язык запросов, используемый для работы с реляционными базами данных. Windows Installer поддерживает ограниченное подмножество языка.

Итак, продолжим. Что же такое технология Windows Installer, о которой я написал уже десяток абзацев, но еще ничего так толком и не сказал? Чем она так замечательна? Что в ней нового по сравнению с уже существующими решениями?

Что такое Windows Installer?

Windows Installer – это сервис установки и конфигурирования программных продуктов. Он поставляется как неотъемлемая часть операционных систем Windows 2000 и Windows Me, а также может устанавливаться в ОС Windows 95, Windows 98 и Windows NT 4.0 вместе с пакетами обновления этих операционных систем или в качестве отдельного дистрибутива.

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

Основная цель этой технологии: уменьшение так называемой совокупной стоимости владения (TCO – Total Cost of Ownership) для пользователей программных продуктов за счет эффективных средств развертывания и конфигурирования ПО. Надо отметить, что Windows Installer – это только часть (хотя и очень важная) усилий Microsoft по снижению стоимости развертывания, использования и сопровождения ПО для персональных компьютеров.

На каждом компьютере, использующем Windows Installer, хранится единая база данных с информацией о каждом установленном с помощью этой технологии приложении. Эта информация включает файлы, записи в реестре и компоненты. При удалении приложения с машины Installer проверяет базу данных, чтобы удостовериться в том, что не будут удалены файлы, ключи реестра и компоненты, от которых зависят другие приложения. Таким образом, удаление приложения становится практически безопасным для других программ, имеющихся на компьютере.

Выгода от использования Windows Installer для пользователей

Выгода от использования модулей инсталляции для Windows Installer заключается в том, что они облегчают процесс установки и обновления программных продуктов пользователям. Эти модули могут работать на любой 32-хбитной платформе Windows, начиная от Windows 95 и заканчивая Windows XP. Пользователи этих операционных систем получают много преимуществ от использования технологии Windows Installer, а именно:

  • Более простая и быстрая установка программного обеспечения. Так как вся информация об установленном приложении содержится в одном месте, разработчик может предугадать ответы на многие вопросы пользователя, освобождая тем самым пользователя от принятия сложных решений во время установки или обновления программного продукта.
  • Возможность установки по требованию. Информация о неустановленных компонентах приложения также хранится в одном месте. Значит, если вдруг пользователь захочет использовать компонент, который еще не установлен, ему не придется снова запускать весь инсталляционный пакет только для того, чтобы добавить еще одну возможность в программу. Когда пользователь решает использовать новый компонент, приложение просто проверяет инсталляционные данные и извлекает нужную информацию, позволяя добавлять нужную функциональность по требованию.
  • Самовосстановление программ. Хранение инсталляционной информации в одном месте позволяет приложению самовосстанавливаться. Поэтому пользователи теряют меньше времени на удаление и переустановку приложений, а также избавляются от необходимости исправлять непонятные и трудно диагностируемые ошибки в конфигурации приложения. Неправильно работающее приложение может проверить инсталляционные данные, определить, какие файлы повреждены или отсутствуют, а затем восстановить их.
  • Мощные возможности отката. Windows Installer позволяет отменять любые изменения в конфигурации как устанавливаемого продукта, так и операционной системы. Это делает установку программ, поддерживающих технологию Windows Installer, намного более безопасным и предсказуемым занятием, чем каких-либо других. Если при установке программы пользователь сталкивается с фатальной ошибкой, которая прерывает процесс инсталляции, у него остается возможность вернуться к предыдущему устойчивому состоянию. Причем это состояние будет в точности таким, каким было до попытки установки нового программного продукта. Такое поведение программ очень сильно отличается от того, к которому мы привыкли за много лет. Сбой или ошибки в программе инсталляции любого продукта (особенно заменяющего системные динамические библиотеки) могли нарушить работоспособность всей системы, причем это было справедливо не только для практически незащищенных операционных систем типа Windows 9x, но и для Windows NT. Я сам не раз сталкивался с подобными проблемами, особенно при отладке инсталлятора для довольно большого продукта, созданного с использованием пакета InstallShield Professional.

Выгода для пользователей Windows 2000 и более новых систем

Пользователи этих систем получают еще больше преимуществ, а именно:

  • Публикация приложений
  • Установка приложений на "закрытых" машинах
Публикация приложений

Другое название для данной возможности: инсталляция по требованию. На новых платформах Windows Installer публикует приложение, помещая его значок на рабочий стол и в меню Пуск, при этом не происходит копирование никаких файлов приложения на жесткий диск компьютера. Приложение доступно пользователю, но не занимает места на диске до тех пор, пока пользователь не решит запустить его. Только в этот момент Windows Installer копирует и устанавливает все необходимые файлы и компоненты на компьютер.

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

Установка приложений на "закрытых" машинах

Администраторы систем Windows 2000 могут разрешать пакетам инсталляции запускаться с привилегиями администратора на пользовательских машинах. Это позволяет устанавливать программное обеспечение на "закрытых" Windows 2000 компьютерах, то есть на таких компьютерах, где обычные пользователи не имеют привилегий делать то, что позволяется делать программе инсталляции.

Выгода от использования Windows Installer для разработчиков

То, что пользователям выгодно использовать данную технологию, сомнений не возникает. Но мы-то с вами не рядовые пользователи, мы – разработчики программного обеспечения (на мой взгляд, это должно звучать гордо). Что нам дает Windows Installer, кроме еще одной головной боли от необходимости изучать нечто новое? А вот что (и это немало):

  • Легкость использования. Гораздо легче создать пакет инсталляции, основанный на том, что надо инсталлировать, чем на инструкциях о том, как это делать.
  • Централизованное сопровождение и обновления. Мы, как разработчики, можем управлять приложением и конфигурациями инсталляций из одного общего набора данных, вместо того, чтобы работать с множеством копий. Это позволяет более просто и вместе с тем гибко поддерживать и распространять приложения и обновления к ним.

Я думаю, тот, кто работал с InstallShield Professional (пакет для создания инсталляций, управляемых скриптом) и InstallShield Developer (пакет для создания инсталляций на основе Windows Installer, раньше назывался InstallShield for Windows ), поймет, насколько более гибко последний позволяет управлять созданием разных инсталляций на основе единого набора данных.

ПРИМЕЧАНИЕ

Раньше InstallShield Developer назывался InstallShield for Windows Installer

Что касается первого утверждения, непонятного на первый взгляд, то в нем все просто. Посмотрите на следующий заголовок – он все объясняет.

Инсталляция, управляемая данными

Традиционно программы инсталляции используют для управления процессом установки программ скрипты. Каждая инсталляционная программа содержит скрипт, то есть набор инструкций по установке конкретного программного продукта. Эти жестко закодированные инструкции могут прекрасно работать для данной конкретной инсталляции, но они же могут вызывать проблемы в случаях переустановки или удаления продукта, а также установки новых версий. Более того, эти проблемы могут возникнуть при инсталляции других программ, о которых вы даже не подозревали, когда писали свой скрипт. К тому же, так как информация о приложениях не разделяется между скриптами, администраторам и пользователям трудно управлять инсталляцией приложений.

Новая, управляемая данными технология Windows Installer позволяет решить многие проблемы инсталляторов, управляемых скриптами. В модели инсталляции, управляемой данными, создается набор инсталляционных таблиц, в которых каждый ресурс (файлы, ключи реестра и т.д.) явным образом привязан к компоненту или опции приложения, которые его используют. При создании этих таблиц разработчик больше думает о том, что он устанавливает, вместо того, чтобы думать о том, как это устанавливать. То есть разработчик фокусируется на объектах, которые нужно установить и на местоположении этих объектов на целевой машине, а Windows Installer обеспечивает всю остальную функциональность. Тем не менее, это не освобождает разработчика от необходимости думать о том, как же будет устанавливаться приложение.

Все вышесказанное взято из документации Microsoft. Многие разработчики (в том числе и я) не во всем согласны с этими утверждениями. Но нельзя отрицать и того, что технология Windows Installer все-таки здорово облегчает жизнь системным администраторам и разработчикам.

Таким образом, мы плавно переходим от общих тем к более конкретным вопросам. В данной статье я ограничусь рассмотрением Пакета инсталляции. Остальные вопросы, а именно: интерфейс пользователя, последовательность выполнения инсталляции, свойства, стандартные и пользовательские операции, включаемые модули и многие другие, будут рассмотрены в следующих статьях.

Структура пакета инсталляции Windows Installer

Итак, что же представляет собой пакет инсталляции для Windows Installer? Обычно инсталляционные пакеты хранятся в файлах с расширением .msi и представляют собой реляционную базу данных, хранящую всю логику и данные, необходимые для правильной установки программного продукта. А доступом к этим данным управляет непосредственно Windows Installer. То есть, как и любая другая база данных, пакет инсталляции состоит из множества связанных друг с другом таблиц. Так как база данных является реляционной, таблицы связываются с помощью первичных и внешних ключей. Это обеспечивает эффективный способ управления процессом инсталляции и позволяет пользователям с легкостью приспосабливать сложное приложение или даже группу приложений к своим нуждам. Таблицы базы данных отражают общую схему приложения, включающую:

  • доступные опции приложения;
  • компоненты;
  • связи между опциями и компонентами;
  • необходимые записи в реестре Windows;
  • пользовательский интерфейс приложения. Для создания базы данных необходимо заполнить таблицы данными о приложении и о процессе инсталляции. Это можно сделать вручную, используя утилиту ORCA, поставляемую фирмой Microsoft в составе Windows Installer SDK. Кстати, эта утилита может очень помочь в изучении структуры базы данных пакета инсталляции. Но заполнение таблиц вручную – достаточно трудоемкий процесс даже для инсталляций умеренного размера. И это неудивительно, если учесть, что база данных любого пакета инсталляции включает как минимум 87 таблиц!
ПРИМЕЧАНИЕ

Справедливости ради надо сказать, что реально инсталлятор обычно использует только порядка 30-35 из них.

Поэтому гораздо проще и удобнее использовать пакеты для создания инсталляторов. К ним относятся, например Visual Studio Installer, Wise Installer, InstallShield Developer и некоторые другие, не столь широко известные пакеты. Кстати, многие пакеты создания инсталляторов включают в базу данных свои дополнительные таблицы, например, в пакетах, созданных с помощью InstallShield Developer количество таблиц достигает 113! При этом никто не запрещает нам, как разработчикам, определять и добавлять свои таблицы, дополняя тем самым модель данных Windows Installer.

ПРИМЕЧАНИЕ

Вышесказанное справедливо для Windows Installer версии 2.0, который позволяет распространять и устанавливать приложения для новой перспективной платформы Microsoft - .NET Framework.

Я не буду приводить полный список этих таблиц, так как он займет слишком много места. Вместо этого выделим основные группы таблиц и рассмотрим их подробнее.

В базе данных пакета инсталляции можно выделить семь основных групп:

  • базовые таблицы;
  • файловые таблицы;
  • таблицы записей в реестре Windows;
  • системные таблицы;
  • таблицы поиска;
  • таблицы информации о программе;
  • таблицы процесса инсталляции;

Базовые таблицы

Эта группа состоит из таблиц, описывающих основные опции и компоненты приложения и пакета его инсталляции. Эта группа должна заполняться в первую очередь, так как от ее содержимого зависит организация всей остальной части базы данных. Структура этой группы показана на рисунке 1.

Рисунок 1. Структура группы Базовые таблицы

На этой и на последующих диаграммах черный круг, соединенный с белым ромбом обозначает отношение один-ко-многим между первичным ключом в первой таблице и внешним ключом во второй.

Таким образом, мы видим, что эта группа состоит из 11 связанных таблиц. Ниже приведены их краткие описания:

Имя таблицыКраткое описание
FeatureСодержит список всех функций программного продукта
ConditionСодержит условия определяющие порядок установки каждой функции, описанной в таблице Feature 1
FeatureComponentsСвязывает функции с компонентами, иными словами – эта таблица определяет, какой функции принадлежит компонент 2
ComponentСодержит список всех компонентов приложения
DirectoryСодержит список всех каталогов, необходимых для инсталляции
PublishComponentСодержит список функций и компонентов, публикуемых для использования в других приложениях
AssemblyЗадает установки для сборок .NET Framework CLR и Win32
AssemblyNameЗадает схему для именования сборок .NET Framework CLR и Win32
ComplusСодержит информацию, необходимую для установки приложений COM+
IsolatedComponentСвязывает компонент, заданный в столбце Component_Application (обычно .exe) с компонентом, заданным в столбце Component_Shared (обычно .dll)
UpgradeСодержит информацию для значительных обновлений программного продукта 3
  1. Если в таблице Condition нет условия для функции из таблицы Feature – это значит, что функция будет установлена в любом случае.
  2. Один компонент может быть связан с несколькими функциями.
  3. В данном случае под термином значительное обновление понимается обновление, приводящее к изменению свойства ProductCode. Я не буду останавливаться на обновлениях, так как эта тема заслуживает отдельной статьи.

Файловые таблицы

Эта группа таблиц содержит информацию обо всех файлах, составляющих программный продукт. Большая часть этих файлов перечислена в таблице File. Таблица Directory не входит в эту группу, но, тем не менее, очень тесно связана с ней, так как отражает структуру каталогов приложения. При разработке инсталляционного пакета эта группа таблиц должна заполняться после того, как приложение разбито по функциям и компонентам и заполнена группа Базовых таблиц.

ПРИМЕЧАНИЕ

Такие пакеты как InstallShield Developer и Wise Installer позволяют не придерживаться такого жесткого порядка заполнения таблиц. Но рекомендуется все-таки тщательно продумать структуру пакета инсталляции перед тем, как начать заполнять базу данных.

Структура этой группы показана на рисунке 2.

Рисунок 2. Структура группы Файловые таблицы

Эта группа состоит из 15 таблиц. Их краткое описание дано ниже.

Имя таблицыКраткое описание
FileВ этой таблице перечислены файлы, входящие в инсталляцию. Так как файлы привязаны к компонентам, их использующим, эта таблица связана с таблицей Component
RemoveFileВ этой таблице содержится список файлов, которые необходимо удалить при выполнении операции RemoveFiles
FontЭта таблица содержит список файлов шрифтов, которые необходимо зарегистрировать в системе
SelfRegЭта таблица содержит список саморегистрирующихся модулей (то есть библиотек динамической компоновки, экспортирующих функции DllRegisterServer и DllUnregisterServer). Installer не регистрирует EXE-файлы
MediaЭта таблица описывает набор дисков инсталляции
BindImageЭта таблица содержит информацию о привязках исполняемых файлов или DLL 1
MoveFileЭта таблица содержит список файлов, которые нужно перенести или скопировать во время инсталляции из исходного каталога в заданный каталог
DuplicateFileЭта таблица содержит список файлов, которые необходимо продублировать при инсталляции: либо в другой каталог с тем же именем, что и исходный файл, либо в тот же каталог, но с другим именем
IniFileВ этой таблице содержится информация для создания .ini-файлов, необходимых приложению. Эти файлы создаются, если содержащий их компонент выбран для инсталляции в локальном режиме или с источника инсталляции
RemoveIniFileЭта таблица содержит информацию, которую необходимо удалить из .ini-файлов при инсталляции приложения
EnvironmentЭта таблица используется для задания переменных окружения 2
IconЭта таблица хранит файлы иконок. Каждая иконка этой таблицы во время инсталляции копируется в отдельный файл на диске 3
FileSFPCatalogЭта таблица используется системой Windows File Protection в ОС Windows Me
SFPCatalogЭта таблица также используется системой Windows File Protection в ОС Windows Me
MsiFileHashЭта таблица хранит 128-разрядное хэш-значение для исходных файлов в пакете инсталляции 4
  1. Для получения более подробной информации о привязках смотрите описание функции Windows API BindImageEx
  2. В операционных системах Windows95/98 в этой таблице также хранится список изменений в файле autoexec.bat
  3. Таблица Icon используется при публикации программных продуктов
  4. Таблица MsiFileHash может использоваться только для файлов, не содержащих информации о версиях. Windows Installer может использовать информацию из этой таблицы, чтобы не выполнять лишнее копирование файлов, уже содержащихся на пользовательском компьютере и совпадающих с файлами из пакета инсталляции.

Таблицы записей в реестре Windows

Эта группа содержит таблицы, описывающие различные виды информации в реестре Windows. Структура группы показана на рисунке 3.

Рисунок 3. Структура группы таблиц Записи в реестре Windows.

Внимательный читатель, конечно же, заметил, что на рисунке присутствуют таблицы из других групп, такие, как Component, Feature и File. Эти таблицы включены сюда для того, чтобы более ясно показать логику работы этой группы. Кроме того, здесь присутствуют таблицы, уже упоминавшиеся в других группах, но здесь играющие немного другую роль (это таблицы SelfReg и Environment).

Таким образом, эта группа включает 11 таблиц, краткое описание которых дано ниже:

Имя таблицыКраткое описание
ExtensionЭта таблица содержит список расширений файлов, используемых устанавливаемой программой, вместе с привязанными к этим расширениям функциями и компонентами
VerbЭта таблица связывает информацию о командах, связанных с расширениями файлов из предыдущей таблицы. Наличие этих таблиц в связке с таблицей Feature позволяет реализовать возможность публикации приложения
TypeLibЭта таблица содержит записи, необходимые для регистрации библиотек типов 1
MIMEЭта таблица связывает типы MIME c CLSID или расширением файла. Это позволяет связать таблицы MIME и Feature, и обеспечить еще один путь для публикации приложения
SelfRegСмотрите описание в группе Файловые операции 2
ClassЭта таблица содержит информацию, необходимую для работы COM-серверов
ProgIdЭта таблица содержит информацию о ProgID для COM-серверов
AppIdЭта таблица используется для конфигурирования DCOM-серверов
EnvironmentСмотрите описание в группе Файловые таблицы 3
RegistryЭта таблица содержит всю прочую информацию, не вошедшую в другие таблицы. Это может быть пользовательская информация, данные, установки по умолчанию и т.д.
RemoveRegistryЭта таблица содержит информацию о записях в реестре, которые нужно удалить при инсталляции приложения
  1. При публикации приложения никаких записей о библиотеках типов не делается. Запись производится только в момент установки компонента, связанного с библиотекой.
  2. Использование саморегистрации в Windows Installer НЕ РЕКОМЕНДУЕТСЯ и включено только для обеспечения обратной совместимости с предыдущими технологиями установки программ. Вместо этого рекомендуется заполнить соответствующие таблицы нужной информацией, аналогичной той, что прописывает нужный модуль при вызове его функции DllRegisterServer.
  3. Эта таблица включена в данную группу, так как в операционных системах Windows NT / 2000 / XP данные из нее пишутся в реестр.

При заполнении этой группы нужно попытаться сделать таблицу Registry как можно компактней, поместив как можно больше информации в другие, более специфичные таблицы. Это делается, потому что Installer не может выделить различные типы реестровых записей в таблице Registry и, следовательно, не может использовать внутреннюю логику для задействования всех своих возможностей, например – публикации или установки по требованию. Кроме того, такой способ организации данных поможет уменьшить риск записи лишней информации о COM-серверах.

Системные таблицы

Эта группа содержит информацию о структуре инсталляционной базы данных. Запросы к таблицам этой группы позволяют получить разнообразную информацию о пакете инсталляции любого приложения.

Диаграмму этой группы приводить смысла нет. Некоторые таблицы этой группы – статические, они создаются при компиляции пакета инсталляции и не связаны с другими таблицами. Другая же часть вообще не хранится в базе данных, а создается только на время выполнения SQL-запросов.

Итак, эта группа состоит из 5 таблиц, краткое описание которых дано ниже:

Имя таблицыКраткое описание
_TablesХранит имена всех таблиц инсталляционной базы данных, включая созданные автором пакета для личных целей (например, для использования в своих операциях). Эта таблица доступна только на чтение
_ColumnsХранит информацию обо всех столбцах в таблицах инсталляционной базы данных. Но временные столбцы в этой таблице не хранятся. Как и предыдущая таблица, доступна только на чтение
_StreamsСодержит потоки данных OLE. Эта таблица временная и создается только при выполнении определенных SQL-запросов, например, при выполнении функции MsiRecordReadStream
_StoragesСодержит хранилища данных OLE. Эта таблица также временная и создается только при выполнении определенных SQL-запросов, например, при выполнении функции MsiRecordSetStream
_ValidationЭта таблица содержит информацию о столбцах в таблицах базы данных, включая их имена и диапазоны допустимых значений, а также другую важную для базы данных информацию. Используется только при проверке целостности базы данных

Таблицы поиска

Таблицы поиска используются для поиска файлов и приложений на компьютере пользователя. Чтобы найти файл, нужно сначала задать сигнатуру файла, а затем произвести поиск. Таблицы этой группы можно использовать для поиска в реестре, в данных конфигурации инсталлятора, по дереву каталогов или в .ini-файлах. При этом ищется файл или каталог с заданной уникальной сигнатурой. Затем, если файл найден, его сигнатура проверяется по таблице Signature, чтобы убедиться, что данный файл действительно тот, который нужен, а не просто еще один файл с таким же именем. Если запись в таблице поиска не связана с таблицей Signature, значит, запись ссылается на каталог, а не на файл.

Компонент, которому принадлежит нужный файл, определяется через связь между таблицами File и Component. Installer определяет подчиненность файла через таблицу компонентов, потому что каждый файл связан с одним компонентом. Местоположение компонента определяется по внешнему ключу в таблице Component, указывающему на таблицу Directory.

Нужные приложения ищутся аналогично: при этом находятся определенные файлы, из которых состоит приложение. Installer также предоставляет две таблицы, позволяющие искать предыдущие версии приложений: AppSearch и CCPSearch.

Группа таблиц поиска состоит из 7 таблиц, описание которых дано ниже:

Имя таблицыКраткое описание
SignatureСодержит информацию, уникальным образом описывающую некоторый файл 1
RegLocatorЭта таблица содержит информацию, необходимую для поиска файлов или каталогов по записям в реестре
IniLocatorЭта таблица используется для поиска .ini-файлов. Эти файлы должны быть расположены в корневом каталоге Windows
CompLocatorЭта таблица используется для поиска файлов или каталогов с использованием конфигурационных данных Windows Installer
DrLocatorЭта таблица используется для поиска по дереву каталогов
AppSearchЭта таблица содержит список свойств, которые должны быть установлены, если нужный файл или каталог с заданной сигнатурой найден
CCPSearchЭта таблица содержит список сигнатур файлов, из которых хотя бы один должен быть установлен на пользовательском компьютере. Таблица используется при обновлении программ
  1. Формально по документации Microsoft таблица Signature не относится к группе таблиц поиска. Но так как она нигде, кроме поиска, не используется, я позволил себе внести ее в эту группу.

Таблицы информации о программе

Таблицы этой группы содержат важную информацию о пакете инсталляции, используемую на протяжении всего процесса инсталляции.

Состоит эта группа из пяти таблиц:

Имя таблицыКраткое описание
PropertyВ этой таблице хранятся все свойства 1 пакета инсталляции
BinaryВ этой таблице хранятся двоичные данные для иконок, растров и т.п. Также здесь хранятся данные для пользовательских операций
ErrorЭта таблица используется для поиска шаблонов форматирования при обработке ошибок. Installer имеет свой собственный механизм обработки ошибок
ShortcutЗдесь хранится вся информация, необходимая для создания файловых ярлыков
ReserveCostЭта таблица содержит информацию о необходимом дисковом пространстве для каждого компонента приложения
ПРИМЕЧАНИЕ
  1. Свойство – это глобальная переменная, которая используется Microsoft Windows Installer во время инсталляции.

Таблицы процесса инсталляции

Таблицы этой группы управляют выполнением стандартных и пользовательских операций.

ПРИМЕЧАНИЕ

Тема операций в Windows Installer обширна и ей будет посвящена одна из следующих статей.

Некоторые из таблиц этой группы управляют последовательностью выполнения операций на самом высоком уровне. Каждая из следующих таблиц управляет своей частью процесса.

Имя таблицыКраткое описание
InstallUISequnceЭта таблица содержит операции, выполняемые при активизации высокоуровневой операции INSTALL и уровне пользовательского интерфейса – полный или сокращенный. Installer пропускает операции из этой таблицы, если уровень пользовательского интерфейса установлен в базовый или отключен 1
InstallExecuteSequenceЭта таблица содержит операции, выполняемые при активизации высокоуровневой операции INSTALL 1, 2
AdminUISequenceЭта таблица содержит операции, выполняемые при активизации высокоуровневой операции ADMIN и уровне пользовательского интерфейса – полный или сокращенный. Installer пропускает операции из этой таблицы, если уровень пользовательского интерфейса установлен в базовый или отключен 3
AdminExecuteSequenceЭта таблица содержит операции, выполняемые при активизации высокоуровневой операции ADMIN 2, 3
AdvtUISequenceInstaller не использует эту таблицу. Она должна быть удалена из базы данных или быть пустой
AdvtExecuteSequenceЭта таблица содержит операции, выполняемые при активизации высокоуровневой операции ADVERTISE 4
  1. Все операции в последовательности инсталляции, вплоть до InstallValidate и диалогов выхода, помещаются в таблицу InstallUISequence. Все операции от InstallValidate и до конца инсталляции – в таблицу InstallExecuteSequence. Так как последняя таблица может использоваться независимо от первой (например, если пользовательский интерфейс отключен), она включает все операции инициализации, такие как LaunchConditions, CostInitialize, CostFinalize и ExecuteAction.
  2. Все пользовательские операции, выполняемые в этой последовательности, при необходимости использования пользовательского интерфейса должны пользоваться функцией API MsiProcessMessage, вместо диалогов из таблицы Dialog.
  3. Все операции в последовательности инсталляции, вплоть до InstallValidate и диалогов выхода, помещаются в таблицу AdminUISequence. Все операции от InstallValidate и до конца инсталляции – в таблицу AdminExecuteSequence. Так как последняя таблица может использоваться независимо от первой (например, если пользовательский интерфейс отключен), она включает все операции инициализации, такие как LaunchConditions, CostInitialize, CostFinalize и ExecuteAction.
  4. Таблица AdvtExecuteSequence может содержать только ограниченный набор стандартных операций. Пользовательские операции не должны содержаться в этой таблице.

К другой группе относятся таблицы, позволяющие расширять функциональность пакета инсталляции. Достаточно часто, особенно при установке сложных программных продуктов, встроенной функциональности Windows Installer, основанной на стандартных операциях, не хватает. Здесь и приходит на помощь таблица Custom Action, позволяющая создавать и хранить в инсталляционной базе данных информацию для выполнения пользовательских операций.

Эта таблица позволяет легко и просто интегрировать пользовательский код и данные в процесс инсталляции приложения. Исполняемый код может браться прямо из базы данных, только что установленного файла или из уже существующего на компьютере исполняемого файла.

Следующая группа таблиц расширяет возможности инсталлятора по манипулированию файлами и каталогами в процессе инсталляции.

Имя таблицыКраткое описание
RemoveFileЭта таблица содержит список файлов, которые необходимо удалить при инсталляции
RemoveIniFileЭта таблица содержит информацию, которую нужно удалить из .ini-файлов при инсталляции приложения
RemoveRegistryЭта таблица содержит информацию, которую нужно удалить из реестра при инсталляции связанного с ней компонента
CreateFolderСодержит список каталогов, которые необходимо создать при инсталляции приложения 1
MoveFileЭта таблица содержит список файлов, которые нужно перенести или скопировать во время инсталляции из исходного каталога в заданный каталог
  1. Хотя Installer и создает при инсталляции каталоги по мере необходимости, они удаляются, если не содержат файлов. Каталоги, перечисленные в таблице CreateFolder, не удаляются до тех пор, пока не будет удален связанный с ними компонент.

И, наконец, последняя в списке, но далеко не последняя по значимости таблица, управляющая выполнением инсталляции: LaunchCondition. Эта таблица содержит список условий, при выполнении которых может начаться процесс инсталляции. Следует заметить, что эта таблица управляет процессом в целом и для успешного запуска процесса инсталляции необходимо выполнение ВСЕХ содержащихся в ней условий.

Последнее слово о таблицах

Список таблиц, используемых Windows Installer, весьма велик. И вполне естественно, что в рамках статьи невозможно рассмотреть все из них. Многие из таблиц, не упоминавшихся здесь, будут рассмотрены в следующих статьях, при рассмотрении более узких тем.

Windows Installer API

Таблицы – это конечно, хорошо. Но как добраться до содержимого этих таблиц? И как изменять эти таблицы? То есть, говоря иными словами, как можно работать с базой данных инсталляционного пакета?

Для этого существует Windows Installer API. Этот API весьма обширен и включает в себя несколько десятков функций, различных констант и агрегатных типов данных. Все функции Windows Installer API поддерживают как ANSI, так и Unicode. Это позволяет использовать их как в операционных системах на основе Windows NT, для которых кодировка Unicode является родной, так и в системах Windows 9x, ограниченно поддерживающих Unicode.

Все функции Windows Installer API легко найти по префиксу – Msi.

Функции API можно условно разделить на две большие группы:

  • Функции общего назначения.
  • Функции доступа к инсталляционной базе данных.

Функции общего назначения

Эта большая группа функций делится на следующие группы:

  • Функции пользовательского интерфейса и журналирования.
  • Функции управления дескрипторами.
  • Функции конфигурирования и инсталляции.
  • Компоненто-ориентированные функции.
  • Функции приложения.
  • Функции статуса системы.
  • Функции запросов.
  • Функции исправлений.

Функции доступа к инсталляционной базе данных

Функции доступа к базе данных используются в пользовательских операциях, выполняемых во время инсталляции программ, и в инструментальных утилитах (например, в тех же ORCA и MsiSpy из Platform SDK). Некоторые из этих функций используют подмножество языка SQL для запросов к базе данных.

Функции доступа к базе данных можно разделить на следующие группы:

  • Общие функции – эта группа функций используется для открытия, закрытия базы данных, работы с представлениями базы данных.
  • Функции управления – эта группа используется в основном для работы с трансформациями, а также для объединения баз данных, и их импорта/экспорта в текстовые файлы.
  • Функции обработки записей – это различные функции для манипулирования записями базы данных. С помощью этих функций можно извлекать данные из базы и помещать их туда. В Windows Installer поддерживаются следующие типы записей: String – строка, заканчивающаяся нулем, Integer – 32-битное целое число и Stream – поток байтов произвольной длины.
  • Функции для работы c суммарной информацией – эта группа функций позволяет извлекать из базы и записывать в базу свойства суммарной информации.
  • Функции доступа к состоянию инсталлятора – эти функции позволяют получать и задавать различные свойства инсталлятора.
  • Функции выполнения операций – эта группа функций используется для выполнения пользовательских и стандартных операций, вычисления условий и обработки сообщений.
  • Функции поиска - эти функции позволяют получать и записывать информацию в таблице Directory.
  • Функции выбора – эта группа функций используется для работы с функциями приложения и компонентами.Также в нее входят функции для установки уровня инсталляции и оценки места на диске, необходимого как для установки отдельных компонентов приложения, так и для всего продукта в целом
  • Функции пользовательского интерфейса – эти функции используются в инструментальных средствах для предварительного просмотра диалоговых окон и различных

Заключение

На этом я хочу закончить первую часть цикла. Надеюсь, что вы получили достаточно ясное общее представление о технологии Windows Installer и преимуществах ее применения для инсталляции программных продуктов. В следующей статье я хочу рассказать о том, как же собственно выполняется инсталляция приложений, какие процессы при этом происходят, и какие данные из вышерассмотренных таблиц используются.

Источники информации

Документация к Platform SDK

Microsoft Developer Network

InstallShield Corporation

http://www.installsite.org

Эта статья опубликована в журнале RSDN Magazine #3. Информацию о журнале можно найти здесь

rsdn.org

InstallPack что это за программа и нужна ли она?

Всем привет Будем говорить о такой программе как InstallPack, которая из себя представляет загрузчик популярного ПО. Честно скажу, я совсем не удивлюсь, если эта программа попала к вам на комп случайно или появилась вообще сама по себе из ниоткуда. Дело в том, что вроде бы ничего опасного в проге нет, ну по крайней мере я не нашел, но с другой стороны какой-то огромной пользы я в ней тоже не вижу.

Значит что делает InstallPack? Эта прога позволяет вам загрузить и установить популярные проги для компа (вроде есть более 700 прог), при этом не нужно идти на какие-то сайты, не нужно открывать браузер, нужно просто запустить этот InstallPack и выбрать галочками желаемые проги. Вроде бы все хорошо, все просто и все четко, неправда ли? Но есть еще один интересный момент. InstallPack также и сам устанавливает проги! А значит какое-то действие к ним применяется уже? То есть если постарались над автоматизацией установки ПО, то уже точно подумали и про личную выгоду с этого так бы сказать… Ну я думаю вы поняли..

Так что вот такие вот дела. Все популярные проги можно и самому скачать спокойно, тем более что запуск браузера и поиск программы, это не такая уж и тяжелая задача на современном компе, согласитесь? Да и не устанавливаете вы проги каждый день, правильно? Ну то есть такое явление как установка прог, то такое явление нельзя назвать частым. Поэтому польза от InstallPack как бы есть, но не особо большая…

Я скачал эту прогу, устанавливать ее не нужно, она у меня так запустилась. Вот как выглядит InstallPack:

Как видите, ставите галочки на тех прогах, которые вам нужны и потом нажимаете кнопку Далее и все. Вверху можно выбрать какие именно проги качать, ну то есть категории, а также стоит галочка Тихая установка, это чтобы проги самостоятельно устанавливались:

Еще можно искать программы, в общем вроде бы все удобно и хорошо сделано, но вот честно, у меня доверия к проге все равно нет.. Я уже многие проги повидал и во многих есть свои не очень приятные приколы..

Ну что, протестируем прогу? Для теста я попробую скачать и установить офисный пакет OpenOffice через InstallPack и проверим, будет ли установка на самом деле автоматической. Дело в том, что раньше я как-то пользовался прогой InstallPack, так вот, скажу я вам, что не все проги устанавливались автоматом. Ну ладно, я вбил в поиск слово Open, вот показались две проги, одна из них это то что мне нужно, на ней я и ставлю галочку:

Потом внизу я нажимаю кнопку Далее. Ну что, готовы? А вот то что я и думал! Нам предлагают также установить браузер Опера, который мы не заказывали:

Вот прикол же! Если что, то внизу есть галочки, чтобы Опера не устанавливалась, так что снимите их и все будет нормик..

Начался загружаться OpenOffice:

Потом он начал устанавливаться:

Значит скажу сразу, что OpenOffice установился самостоятельно, то есть ничего мне нажимать не нужно было, все само установилось быстренько и четко. Ну а потом уже статус проги в InstallPack изменился на Завершено:

На рабочем столе появился ярлык OpenOffice:

Ну что я тут могу сказать? В принципе мне понравилось то, что прога работает ну так бы сказать четко как часы. Я выбрал OpenOffice, потом нажал кнопку Далее, дальше появился косяк в виде установки Оперы, но внизу есть галочки и легко можно отказаться, и потом уже именно что ни есть все произошло четко: скачался OpenOffice и потом сам установился, вуаля!

Что лично мне не нравится в InstallPack? Ну наверно только то, что я не знаю откуда качаются проги, и как я понял, то после того как вы нажмете кнопку Далее, то вам может быть предложено загрузить еще одну прогу (в моем случае это была Опера). А так в принципе нет никаких минусов вроде бы… Рекламы вроде тоже нет, или я ее просто не заметил.

Кстати, я потом еще раз скачал InstallPack, но уже сохранил его, то есть не сразу открывал, а сохранил на рабочий стол. Потом запустил его и он создал рядом папку с именем InstallPack_Downloads, это наверно для загружаемых программ. Сам InstallPack работает под процессом mshta.exe, ничего плохого тут нет, просто знаете что мне это все говорит? Короче получается, что прога InstallPack это оболочка, все что внутри нее, это сайт. Вроде бы так, я могу ошибаться, но что-то такое там точно есть! Вот когда я посмотрел в диспетчере, откуда запущен процесс InstallPack.exe (правой кнопкой по процессу и там выбрать Открыть место хранения), то мне открылась эта папка:

C:\Users\VirtMachine\AppData\Local\Temp\ip

Только там где VirtMachine, то там конечно у вас будет имя компа, ну то есть учетки. Ну и вот в этой папке есть файлы html (я их выделил рамочкой), их можно открыть браузером, так что можете посмотреть что там. Ну это так, тут ничего криминального или вирусного нет, это просто вам на заметку, мне вот интересно иногда такое посмотреть, так бы сказать что там внутри проги, из чего она сделана, как все устроено…

Еще скажу что по отзывам нельзя сказать что InstallPack это какая-то подозрительная прога, так что тут так бы сказать каждому свое. О проге MediaGet тоже сегодня не совсем понятно, нормальная она или опасная, так как внутри нее некоторые антивирусные утилиты находят вирус, хотя сама прога вроде бы нормальная и полезная..

Ну что ребята, вроде бы все? Надеюсь, что все вам тут было и понятно и инфа эта была полезной! Удачи вам в жизни и чтобы все было хорошо у вас

На главную! неизвестные программы 14.11.2016

virtmachine.ru


Смотрите также