Wix Managed Bootstrapper应用程序:Detect *事件何时触发?

时间:2014-12-10 17:15:16

标签: wix bootstrapper

一旦我的Wix MBA启动(实际上在主视图的代码隐藏构造函数中),我就为BA中的一堆Detect *事件设置事件处理程序:

LogDetect("Setting bootstrapper detection handlers");
bootstrapperApplication.DetectRelatedBundle += BootstrapperOnDetectRelatedBundle;
bootstrapperApplication.DetectPackageComplete += BootstrapperApplicationOnDetectPackageComplete;
bootstrapperApplication.DetectRelatedMsiPackage += BootstrapperOnDetectRelatedMsiPackage;
bootstrapperApplication.DetectPriorBundle += BootstrapperOnDetectPriorBundle;
bootstrapperApplication.DetectMsiFeature += BootstrapperApplicationOnDetectMsiFeature;
bootstrapperApplication.DetectComplete += BootstrapperApplicationOnDetectComplete;
bootstrapperApplication.DetectBegin += BootstrapperApplicationOnDetectBegin;

然后我打电话给Detect():

LogDetect("Beginning detection of existing installations...");
bootstrapperApplication.Engine.Detect();

在这些处理程序中,我只调用LogDetect()。我知道LogDetect()有效,因为我在处理程序之外的那两个调用会记录消息,但是LogDetect()没有记录其他消息,这意味着永远不会调用处理程序。

我认为至少DetectBeginDetectComplete会触发。

我认为在调用Detect()后不久就会发生这些事件。它什么时候发生?

编辑:如果我查看用户临时目录中的日志文件,它会显示正在发生检测。那些日志条目不是我的(它们标记为iXXX,其中i代表内部我认为)。


(旁注:这个有点相关的问题,没有得到回答的事实并不是很有希望...... Wix Bootstrapper: Sequence of Bootstrapper events

1 个答案:

答案 0 :(得分:1)

看起来他们一直在开火;他们只是试图在不同的线程上工作:/