Wix Bootstrapper:Bootstrapper事件的序列

时间:2014-01-09 10:57:43

标签: wix bootstrapper burn

我开始玩Managed Boostrapper Classes和事件。简而言之,我添加了BoostrapperCore.dll,它会给你命名空间

  

Microsoft.Tools.WindowsInstallerXml.Bootstrapper

我能够从不同博客中的一些示例中获得一些信息。例如,入口点为 BootstrapperApplication.Run(),在bootstrapper应用程序准备好运行时被调用。

然后有类似的事件:

BoostrapperApplication.DetectBegin
BoostrapperApplication.DetectPackageBegin
BoostrapperApplication.DetectForward

等等...

问题:是否有任何精确的文档/在线帮助,提供Microsoft.Tools.WindowsInstallerXml.Bootstrapper命名空间中的事件和方法的详细信息和顺序?

这肯定会节省很多时间......

此致

1 个答案:

答案 0 :(得分:4)

the source code is on git期间,我还没有为这些活动找到大量文档。

就顺序而言,WiX引导程序有3个主要阶段(所有这些都是异步发生的)

检测

这是Burn引擎试图弄清楚已经安装了什么(如果有的话)的时候。引导程序应用程序通过调用Engine.Detect来启动此过程,您可能希望在引导程序启动后立即执行此操作,因为您需要此结果才能决定是否显示安装,卸载或升级UI。 / p>

在此阶段,引擎将引发OnDetect...事件,以告诉引导程序应用程序它找到了什么。

计划

这是Burn引擎弄清楚它将要做什么的时候。引导程序应用程序通过调用Engine.Plan启动此过程,指定所需的操作(例如,安装,卸载,升级等...)。这通常在 Apply 阶段之前完成,例如在用户点击" Go"按钮)。在此阶段会引发OnPlan...个事件。

应用

这是Burn引擎实际安装或卸载软件包中的软件包时,并在引导程序应用程序调用{​​{1}}时启动。在此阶段,绝大多数剩余的消息都是在进展和结合的过程中提出的。错误报告,或允许引导程序应用程序处理某些事情(例如Engine.Apply,可用于提示用户查找引擎无法找到的文件)

Apply有两个子阶段,Cache和Execute。

在这三个阶段中的一个阶段,我只能看到3个未提出的事件:

  • OnResolveSource,在引导程序首次启动时引发(基本引导程序应用程序在处理此事件时调用OnStartup入口点)
  • Run,在引导程序退出时引发
  • OnShutdown,在收到WM_QUERYENDSESSION窗口消息时引发

您绝对需要处理的事件是OnSystemShutdownOnDetectCompleteOnPlanComplete,这将按此顺序发生。