WiX Bootstrapper - Install MSI from CustomAction

本文关键字:from CustomAction MSI Install Bootstrapper WiX | 更新日期: 2023-09-27 18:04:27

我用WiX创建了一个Bootstrapper。它包含一个带有两个msi包的链。当它运行时,它调用一个。net customaction,它显示一个视图(像这个示例:http://bryanpjohnston.com/2012/09/28/custom-wix-managed-bootstrapper-application),用户可以选择一些设置。

现在,当用户在这个视图中选择一个特殊设置时,我必须安装第一个msi。我正在寻找一种方法来做到这一点。最简单的方法是,我可以从我的。net类(ViewModel)运行msi安装。但是我如何访问包含在msi引导程序中的msi包并运行它?

WiX Bootstrapper - Install MSI from CustomAction

当Burn计划你的MSI包时,它会为你可以覆盖的每个包回调"请求状态"。要查看此附加到PlanPackageBegin事件。该事件由PlanPackageBeginEventArgs提供。在这些事件参数中,您将看到State字段,它将告诉您默认情况下Burn将为该包做什么。您可以将State字段设置为任何您想要的RequestState

例如,如果包不存在并且您的Plan()LaunchAction.Install,那么State将是RequestState.Present。您的自定义BA代码可以将其更改为您想要的任何RequestState。因此,你的UI可能会说,"我知道你认为你应该安装那个包,但是这个用户选中了安装FooWidget的框,所以让这个包成为RequestState.Absent。"

日志文件将显示计划的结果,在调试时非常有用。