23.03.2009

Custom Actions, какие они?

Экшены - это действия, котоорые выполняются в процессе инсталляции. По своей сути они представляют собой функции, которые и руководят процессом установки от копирования файлов и записей в реестре до сложных пользовательских функций. Существуют как встроенные экшены инсталлятора, например LunchCondition, который осуществляет проверку условий установки, так и CustomActions - пользовательские функции, расширяющие возможности инсталлятора. Существует несколько типов custom-экшенов, подходящих для разных нужд разработчика. Ниже я постарался перечислить все типы экшенов, присутствующих в Wix 3. Данная информация может быть использована как памятка при выборе типа экшена для определенной задачи.

Type 1 – вызов функции из dll, dll находится в таблице Binary инсталляционного пакета.
Объявление в тегах Wix:
< CustomAction
Id="" – id экшена
BinaryKey="" – id библиотеки в таблице Binary
DllEntry="" – имя вызываемой функции
/>

Type 2 – запуск исполняемого exe-файла, exe находится в таблице Binary инсталляционного пакета.
Объявление в тегах Wix:
< CustomAction
Id="" – id экшена
BinaryKey="" – id файла в таблице Binary
ExeCommand="" – передаваемые параметры командной строки
/>

Type 5 – запуск скрипта Java, файл JavaScript находится в таблице Binary инсталляционного пакета.
Объявление в тегах Wix:
< CustomAction
Id="" – id экшена
BinaryKey="" – id файла скрипта в таблице Binary
JScriptCall="" – имя вызываемой функции
/>

Type 6 – запуск скрипта VisualBasic, файл VBScript находится в таблице Binary инсталляционного пакета.
Объявление в тегах Wix:
< CustomAction
Id="" – id экшена
BinaryKey="" – id файла скрипта в таблице Binary
VBScriptCall="" – имя вызываемой функции
/>

Type 17 – вызов функции из dll, dll является устанавливаемым файлом.
Объявление в тегах Wix:
< CustomAction
Id="" – id экшена
FileKey="" – id библиотеки в таблице файлов
DllEntry="" – имя вызываемой функции
/>

Type 18 – запуск исполняемого exe-файла, exe является устанавливаемым файлом.
Объявление в тегах Wix:
< CustomAction
Id="" – id экшена
FileKey="" – id файла в таблице файлов
ExeCommand="" – передаваемые параметры командной строки
/>

Type 19 – отображение сообщения об ошибке, завершение инсталляции.
Объявление в тегах Wix:
< CustomAction
Id="" – id экшена
Error="" – текст сообщения об ошибке
/>

Type 21 – запуск скрипта Java, файл JavaScript является устанавливаемым файлом
Объявление в тегах Wix:
< CustomAction
Id="" – id экшена
FileKey="" – id файла скрипта в таблице файлов
JScriptCall="" – имя вызываемой функции
/>

Type 22 – запуск скрипта VisualBasic, файл VBScript является устанавливаемым файлом.
Объявление в тегах Wix:
< CustomAction
Id="" – id экшена
FileKey="" – id файла скрипта в таблице Binary
VBScriptCall="" – имя вызываемой функции
/>

Type 34 – запуск исполняемого exe-файла, определяемого директорией, в которой расположен файл и командной строкой для запуска.
Объявление в тегах Wix:
< CustomAction
Id="" – id экшена
Directory="" – id директории в таблице Directory, в которой располагается exe
ExeCommand="" – командная строка для запуска приложения
/>

Type 35 – установка физического пути для элемента Directory инсталляционного пакета.
Объявление в тегах Wix:
< CustomAction
Id="" – id экшена
Directory="" - id директории в таблице Directory
Value="" – новое значение пути (форматируемая строка)
/>

Type 37 – запуск скрипта Java, скрипт написан непосредственно в CustomAction
Объявление в тегах Wix:
< CustomAction
Id="" – id экшена
Script="jscript">
< ![CDATA[< !—здесь находится текст скрипта -- >\]]>
< /customaction>

Type 38 – запуск скрипта Visual Basic, скрипт написан непосредственно в CustomAction
Объявление в тегах Wix:
< CustomAction
Id="" – id экшена
Script=" vbscript">
< ![CDATA[< !—здесь находится текст скрипта -- >\]]>
< /customaction>

Type 50 – запуск исполняемого exe-файла, exe уже существует на целевой системе. Exe задается через Property.
Объявление в тегах Wix:
< CustomAction
Id="" – id экшена
Property="" – Property, определяющее имя exe-файла
ExeCommand="" – параметры командной строки, передаваемые приложению
/>

Type 51 – установка значения Property.
Объявление в тегах Wix:
< CustomAction
Id="" – id экшена
Property="" – id изменяемого Property
Value="" – новое значение (не должно содержать других Property)
/>

Type 53 – запуск скрипта Java, скрипт хранится в Property
Объявление в тегах Wix:
< CustomAction
Id="" – id экшена
JScriptCall="" – имя вызываемой функции
Property="" – id Property, хранящей текст скрипта
/>

Type 54 – запуск скрипта Visual Basic, скрипт хранится в Property
Объявление в тегах Wix:
< CustomAction
Id="" – id экшена
VBScriptCall="" – имя вызываемой функции
Property="" – id Property, хранящей текст скрипта
/>

С внедрением в Wix инструмента DTF стал доступен запуск экшенов из .NET сборки. Как создать соответствующую сборку можно поглядеть в примерах в интернете, а объявление такого экшена в Wix имеет вид аналогичный экшенам для dll-библиотек (например type 1).

P.S. пробелов после открывающихся скобок быть не должно - поставлены, чтобы не воспринимались как html-разметка.

Комментариев нет: