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