Одновременные установки
Одновременные установки, также называемые вложенными установками, является нерекомендуемой функцией установщика Windows. Приложения, установленные с одновременными установками, могут в конечном итоге завершиться ошибкой, так как клиентам трудно правильно обслуживать их. Не используйте одновременные установки для установки продуктов, которые должны быть выпущены для общественности. Одновременные установки могут иметь ограниченную применимость в контролируемых корпоративных средах при использовании для установки приложений, которые не предназначены для общедоступного выпуска. Документация по параллельным установкам предоставляется для авторов пакетов, которые хотят использовать параллельные установки с приложениями, которые не предназначены для общедоступного распространения.
Параллельное действие установки устанавливает другой пакет установщика Windows во время текущей установки. Параллельная установка добавляется в пакет путем создания параллельного действия установки в таблицу CustomAction и планирования этого настраиваемого действия в таблицах последовательностей. Целевое поле таблицы CustomAction содержит строку параметров общедоступного свойства, используемых параллельной установкой. Исходное поле таблицы CustomAction определяет одновременный пакет. Параллельное действие установки может переустановить или удалить приложение, установленное пакетом установки текущего приложения.
Тип параллельного действия установки указывается в поле Type таблицы CustomAction. В зависимости от типа пользовательского действия пакет для параллельного приложения может находиться в подзаголовке основного пакета, в качестве файла в расположении, указанном свойством, или в качестве объявленного приложения на компьютере пользователя. Следующие типы пользовательских действий выполняют параллельную установку.
Настраиваемый тип действия | Описание |
---|---|
тип пользовательского действия 7 | Параллельная установка продукта, размещенного в пакете установки. |
тип пользовательского действия 23 | Одновременная установка пакета установщика в текущем дереве источника. |
тип пользовательского действия 39 | Параллельная установка объявленного пакета установщика. |
Одновременная установка использует те же параметры пользовательского интерфейса и ведения журнала, что и основная установка.
Одновременные действия установки должны быть помещены между действием installInitialize и действием InstallFinalize последовательности действий основной установки. После отката основной установки установщик также откатит одновременную установку. Использование отложенного выполнения с одновременными действиями установки не требуется, так как установщик объединяет сведения о откате из параллельных и основных установок. Все изменения отменяются при установке отката.
Возвращаемые значения для параллельных действий установки совпадают с другими пользовательскими действиями. См. значения возврата пользовательских действий.
Стандартные или пользовательские действия, указывающие автоматическую перезагрузку системы или запрашивающие перезапуск пользователя, также могут выполнять перезапуск или запрос из параллельной установки.
После начала параллельной установки установщик блокирует все остальные установки до завершения параллельной установки и перед продолжением основной установки. Установщик может выполнять только одновременные установки как синхронные пользовательские действия. См. синхронные и асинхронные пользовательские действия. Флаги параметров, описанные в разделе Настраиваемые параметры возвращаемого действия, должны иметь значение none (+0) или msidbCustomActionTypeContinue (+64).
Параллельное действие установки может установить приложение для локального запуска, запуска из источника, переустановки или удаления таким же образом, как при использовании MsiInstallProduct для обычной установки. Чтобы указать тип установки, передайте ADDLOCAL, ADDSOURCE, ПЕРЕУСТАНОВИТЕили REMOVE в параллельное действие установки.
Одновременные действия установки можно создавать в парах, одно действие, используемое для установки, а другое действие, используемое для удаления параллельной установки. Для установки обычно используется типа пользовательского действия 7 или типа пользовательского действия 23. тип пользовательского действия 39 обычно используется для удаления параллельной установки при удалении родительского продукта. Запись для удаления настраиваемого действия в таблице CustomAction может содержать GUID кода продукта в поле "Источник" и "REMOVE=ALL" в поле "Целевой". Эти два настраиваемых действия должны быть созданы в таблице последовательностей действий с взаимоисключающими условиями. Например, настраиваемое действие, устанавливающее продукт, может иметь значение "NOT Install" в поле "Условие", а настраиваемое действие удаляет параллельную установку может иметь REMOVE="ALL" в поле "Условие".
Нет метода запроса пакета для его стоимости. Это затрудняет затраты на одновременные установки. Строки необходимо добавить в таблицу ReserveCost, чтобы указать папки и худшие затраты на компонент, связанный с параллельной установкой.
Только настраиваемые параметры обработки возвращаемых действий, доступные с одновременными действиями установки, не имеют значения (+0) или msidbCustomActionTypeContinue (+64).
Обратите внимание, что родительская установка не может вызывать собственный пакет как параллельное действие установки.
Обратите внимание, что если установка на компьютере пытается выполнить параллельную установку для каждого пользователя, установщик регистрирует родительскую установку по умолчанию. Это может привести к неправильному удалению приложения, так как установщик пытается удалить приложение на компьютер, когда он фактически зарегистрирован как пользователь. Чтобы принудительно отслеживать состояние параллельной установки для отслеживания состояния родительской установки, введите ALLUSERS="[ALLUSERS]" в столбце Target таблицы CustomAction. В этом случае параллельная установка выполняется на компьютер, если родитель является на компьютер, а одновременная установка выполняется на пользователя, если родитель является пользователем.
Разработчики должны отметить следующие предупреждения при создании параллельных установок.
- Одновременные установки не могут совместно использовать компоненты.
- Административная установка также не может содержать параллельную установку.
- Исправление и обновление могут не работать с параллельными установками.
- Установщик может неправильно стоить параллельной установки.
- Интегрированные панели progressBars нельзя использовать с одновременными установками.
- Ресурсы, которые должны быть объявлены, не могут быть установлены параллельной установкой.
- Пакет, выполняющий одновременную установку приложения, также должен удалить параллельное приложение при удалении родительского продукта.
Чтобы предотвратить установку пакета в качестве параллельной установки, добавьте любой из следующих условных инструкций в таблицу LaunchCondition. Это предотвращает установку пакета с помощью параллельного действия установки, выполняемого другой установкой. Это не препятствует удалению пакета действием RemoveExistingProducts. См. также свойствоParentOriginalDatabase и свойство ParentProductCode.
"Not ParentProductCode"
"Not ParentOriginalDatabase"