【问题标题】:Wix Bootstrapper: Sequence of Bootstrapper eventsWix Bootstrapper:引导程序事件的序列
【发布时间】:2015-09-20 04:19:10
【问题描述】:

我已经开始使用托管 Boostrapper 类和事件。简而言之,我添加了 BoostrapperCore.dll,它会给你命名空间

Microsoft.Tools.WindowsInstallerXml.Bootstrapper

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

然后是这样的事件:

BoostrapperApplication.DetectBegin
BoostrapperApplication.DetectPackageBegin
BoostrapperApplication.DetectForward

等等等等……

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

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

问候

【问题讨论】:

    标签: wix bootstrapper burn


    【解决方案1】:

    虽然the source code is on git,但我还没有找到关于这些事件的大量文档。

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

    检测

    这是 Burn 引擎尝试找出已安装的内容(如果有的话)的时候。引导程序应用程序通过调用 Engine.Detect 启动此过程,您可能希望在引导程序启动后立即执行此操作,因为您需要此结果来决定是否显示安装、卸载或升级 UI。

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

    计划

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

    申请

    这是 Burn 引擎实际安装或卸载捆绑包中的包的时间,并在引导程序应用程序调用 Engine.Apply 时启动。绝大多数剩余消息在此阶段引发,以结合进度和错误报告,或允许引导程序应用程序处理某些事情(例如OnResolveSource,可用于提示用户查找文件引擎无法定位)

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


    我可以看到只有 3 个事件未在这 3 个阶段之一中引发:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多