WiX Bootstrapper:跳过bootstrapper UI,首先显示MSI对话框

时间:2017-04-20 07:04:09

标签: wix bootstrapper wix3.10

我们有一段时间有点复杂的MSI安装程序(WiX),现在需要在MSI之后(可能在之前)调用某些可执行文件。这些可执行文件必须在msiexec之外运行。所以我刚刚开始使用WiX引导程序捆绑当前的MSI,然后调用之后需要的EXE,如下所示:

<Bundle Name=".......">
  <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.HyperlinkLicense">
    <bal:WixStandardBootstrapperApplication 
    LicenseUrl=""
    xmlns:bal="http://schemas.microsoft.com/wix/BalExtension" />
</BootstrapperApplicationRef>

<Chain>
  <MsiPackage Id="MainMSI" SourceFile="installer.msi" DisplayInternalUI="yes" />

  <ExePackage Id="EXE1" 
    InstallCommand="...."
    SourceFile="Exe1.exe" />

由于我们拥有的所有对话框(许可证,选项等)都在MSI中(我们希望保持这种方式,大多数情况下),使引导程序不是在MSI之前显示任何UI?目前我有一个带有几个来自引导程序的按钮的白色对话框,但有没有办法告诉引导程序在开始时不显示任何对话框,甚至立即跳转到MSI?

MSI完成后,我想建立一些对话框,显示正在运行的EXE和“完成”对话框的一些进展。我想那必须来自引导程序?怎么做?或者我是否需要创建一个显示“完成”对话框的简单“完成”MSI?

由于

1 个答案:

答案 0 :(得分:0)

我认为使用StandardBootstrapper是不可能的,但使用自定义托管引导程序肯定是可行的。在自定义MBA中,您可以自己创建捆绑UI。特别是,当在命令行上传递switch / quiet时,根本不创建UI。但即使是正常情况,您也可能无法创建UI或创建一些不可见的UI。

然而,这将违背Burn哲学:所有UI都应该在引导程序中,而MSI应该是愚蠢的。