Wix Managed Bootstrapper:安装 Net framework 并在添加删除程序中添加条目,即使我们取消产品安装

Wix Managed Bootstrapper: Installing Net framework and adding entry in add-remove program even if we cancel product installation

在我的托管引导程序中,我正在打包 Net framework 4.5.1 和 VC Redistributable,如下所示:

<PackageGroupRef Id         = "NetFx451Redist"  />       
  <PackageGroupRef Id         = "VC_ReDist_120" After="NetFx451Redist"   />

  <RollbackBoundary />

  <MsiPackage      Id         = "MainProduct"
                   DisplayName             = "$(var.ProductName)"                       
                   DisplayInternalUI       = "no"
                   Visible                 = "no"
                   Compressed              = "yes"
                   SourceFile              = "$(var.MainProduct)"
                   Vital                   = "yes"
                   After                   = "NetFx451Redist"                            
   >

在 Windows 7 x64 上,Net FW 4.5.1 不存在,通过安装,这将显示 wixstdba 的基本屏幕以安装 .Net 框架,它还会在添加-删除程序中添加一个条目,在完成 Net Framework 并启动我的 msi 包安装之前。

问题:现在完成 Net Framework 4.5.1 安装并启动我的产品包(托管引导程序)后,如果我取消其安装,或者它可能因任何原因而终止error/issue,它在添加-删除程序中留下了条目。如果我尝试从添加-删除程序中 uninstall/change 它,它会再次启动启用安装按钮的托管引导程序安装界面,就好像它是全新安装一样,但总是以错误结束。

如果我取消安装或由于任何 error/issue 从托管界面终止安装,我想从添加-删除程序中删除它的条目。

我的 Bundle 或托管代码中是否缺少某些内容...???

一旦安装了捆绑包的任何部分,Burn 引擎就会在 Add/Remove 程序中注册捆绑包。 .NET 必备包是捆绑包的一部分,因此当 MBAPrereq BootstrapperApplication 安装 .NET 时,捆绑包会在 Add/Remove 程序中注册。无法在您的 Bundle 或 BA 中修改 Burn 引擎的这种行为。一个潜在的功能请求可能是让 Burn 仅在安装非永久包后注册捆绑包。应在 http://wixtoolset.org/issues.

提交功能请求

今天,您可以尝试通过在 BA 中放置逻辑来解决此问题,如果它检测到这种情况,它会在调用 Engine::Exit 之前自动卸载自身。