2014-01-09 3 views
6

Я начал играть с Managed Boostrapper Классы и события. Создание Короче говоря, я добавил BoostrapperCore.dll и это даст вам пространство имен,Wix Bootstrapper: Последовательность событий Bootstrapper

Microsoft.Tools.WindowsInstallerXml.Bootstrapper

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

Тогда есть такие события, как:

BoostrapperApplication.DetectBegin 
BoostrapperApplication.DetectPackageBegin 
BoostrapperApplication.DetectForward 

и т.д., и т.д ...

Вопрос: Есть ли точная документация/помощь онлайн, которые обеспечивают детали и последовательность событий и методов, присутствующих в Microsoft.Tools.WindowsInstallerXml.Bootstrapper namespace?

Это, безусловно, сэкономить много времени ...

С уважением

ответ

3

Хотя the source code is on git, я до сих пор найти значительное количество документации для этих событий.

Насколько заказ идет, загрузчик WiX имеет 3 основных этапа (все из которых происходят асинхронно)

Detect

Это когда Ожог двигатель пытается выяснить, что (если что-нибудь) является уже установлено. Приложение bootstrapper запускает этот процесс, вызывая Engine.Detect, который вы, вероятно, захотите сделать, как только начнется загрузчик, так как вам нужен результат этого, чтобы решить, следует ли показывать установку, удаление или обновление интерфейса.

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

План

Это когда Ожог двигатель выясняет, что его собираются сделать. Приложение bootstrapper запускает этот процесс, вызывая Engine.Plan, указав желаемую операцию (например, Install, Uninstall, Upgrade и т. Д.). Обычно это делается непосредственно перед фазой , например,. после того, как пользователь нажимает кнопку «Перейти»). На этой фазе возникают события OnPlan....

Применить

Это когда Ожог двигатель фактически устанавливает или удаляет пакеты в комплекте, и начинается, когда приложение Загрузчик вызывает Engine.Apply. Подавляющее большинство оставшихся сообщений поднимается на этом этапе для сочетания прогресса & сообщения об ошибках или для того, чтобы приложение bootstrapper могло обрабатывать определенные вещи (например, OnResolveSource, который может использоваться для запроса пользователю найти файл, найти)

Применяется, имеет две подфазы, кэш и выполнение.


Есть только три события, которые я могу видеть, не затронутые в ходе одной из этих 3-х фаз:

  • OnStartup, который поднимается при Bootstrapper первом запуске (приложение базы Загрузчик называет Run точка входа как часть обработки этого события)
  • OnShutdown, поднятая когда загрузчик покидает
  • OnSystemShutdown вскинута в WM_QUERYENDSESSION оконного сообщение получено

события вы абсолютно необходимы для обработки является OnDetectComplete, OnPlanComplete, OnApplyComplete, что будет происходить в таком порядке.

Смежные вопросы