无需用户干预即可自动启动WIX Burn bootstrapper安装

时间:2016-04-17 23:44:32

标签: wix exe bootstrapper burn wix3.8

我创建了一个安装msi的WIX bootstrapper应用程序exe。目前,UI将根据用户计算机中应用程序的状态显示安装或卸载。然后,用户可以按此按钮开始安装。现在我希望这个过程自动发生。一旦用户双击exe,它应该立即开始安装/卸载。 UI将仅显示进度。这可能吗?下面是我的bootstrapper bundle.wxs。

Bag

下面是我的ViewModel类,它会检查安装状态并相应地启用相关按钮。

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
  <Bundle Name="Kube Installer" Version="1.0.0.0" Manufacturer="Zone24x7" UpgradeCode="C82A383C-751A-43B8-90BF-A250F7BC2863">
    <BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost" >
      <Payload SourceFile="..\CustomBA\BootstrapperCore.config"/>
      <Payload SourceFile="..\CustomBA\bin\Release\CustomBA.dll"/>
      <Payload SourceFile="..\CustomBA\bin\Release\GalaSoft.MvvmLight.WPF4.dll"/>
      <Payload SourceFile="C:\Program Files (x86)\WiX Toolset v3.8\SDK\Microsoft.Deployment.WindowsInstaller.dll"/>
    </BootstrapperApplicationRef>
    <WixVariable Id="WixMbaPrereqLicenseUrl" Value=""/>
    <WixVariable Id="WixMbaPrereqPackageId" Value=""/>
    <Chain>
      <MsiPackage SourceFile="..\KubeInstaller\bin\Release\KubeInstaller.msi" Id="KubeInstallationPackageId" Cache="yes" Visible="no"/>
    </Chain>

  </Bundle>


</Wix>

1 个答案:

答案 0 :(得分:1)

我不知道你在哪里开始Detect进程,所以我的假设是你在别的地方做了。但是,看起来您确实在OnDetectPackageComplete方法中启用了按钮。相反,您可以通过Plan()方法拨打InstallExecute(或致电{1}}或UninstallExecute包装)。因此,一旦检测阶段完成,您立即进入OnDetectPackageComplete阶段,您已经使用Plan方法连接了OnPlanComplete方法,以跳转到Apply阶段,给你你想要的行为。