我在 wix 包中有 2 个 msi 我正在使用 wix 3.7 的自定义引导程序。我的安装、卸载和取消命令完美运行。当我尝试使用以下命令提供从捆绑包中添加/删除 msi 的功能时:
this.ModifyCommand = new DelegateCommand(() => this.model.PlanAction(LaunchAction.Modify), () => this.state == InstallState.Present);
它没有按预期工作。我正在使用下面的代码来检测包
protected void DetectPackageComplete(object sender,DetectPackageCompleteEventArgs e)
{
//System.Diagnostics.Debugger.Launch();
if (e.PackageId.Equals("Setup1.msi", StringComparison.Ordinal))
{
this.State = e.State == PackageState.Present ? InstallState.Present : InstallState.NotPresent;
this.model.LogMessage("Setup1.msi"+this.State.ToString());
}
if (e.PackageId.Equals("Setup2.msi", StringComparison.Ordinal))
{
this.State = e.State == PackageState.Present ? InstallState.Present : InstallState.NotPresent;
this.model.LogMessage("Setup2.msi" + this.State.ToString());
}
}
全新安装后,我的 UI 显示添加/删除、删除、修复、重新安装以进行下次安装的选项,我可以从我的包中卸载单个 msi,但下次它不会检测到剩余的包。
如果我卸载 setup2.msi,它会显示添加/删除屏幕,但修改按钮被禁用,如果我卸载 setup1.msi,它会要求全新安装。