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

Posted

技术标签:

【中文标题】Wix Managed Bootstrapper:安装 Net 框架并在添加删除程序中添加条目,即使我们取消产品安装【英文标题】:Wix Managed Bootstrapper: Installing Net framework and adding entry in add-remove program even if we cancel product installation 【发布时间】:2015-09-14 07:58:50 【问题描述】:

在我的托管引导程序中,我正在打包 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"                            
   >

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

问题:现在在完成 Net Framework 4.5.1 安装并启动我的产品包(托管引导程序)后,如果我取消它的安装,或者它可能由于任何错误/问题而终止,它离开添加删除程序中的条目。如果我尝试从 Add-Remove programs 卸载/更改它,它会再次启动托管引导程序安装界面并启用安装按钮,就好像它是全新安装一样,但总是以错误结束。

如果我从托管界面取消安装或由于任何错误/问题而终止安装,我想从 Add-Remove 程序中删除其条目。

我的 Bundle 或 Managed Code 中是否缺少某些内容...???

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

谢谢肖恩。我在那里添加了问题:wixtoolset.org/issues/4905。希望有人能提供一些解决方案。 就我个人而言,这对我来说是个噱头。不知道如何继续。在我的情况下,我将 .NET 作为安装程序的先决条件,安装后,它会显示已安装的产品。然后我的安装程序失败了,因为它认为它已经安装了。当你再次运行它时,它会弹出修改/卸载对话框,即使安装还没有完成。 添加指向新的错误跟踪 URL 的链接:github.com/wixtoolset/issues/issues/4822

以上是关于Wix Managed Bootstrapper:安装 Net 框架并在添加删除程序中添加条目,即使我们取消产品安装的主要内容,如果未能解决你的问题,请参考以下文章

WiX-Bootstrapper - 为 UAC 对话框设置产品名称和公司名称

WiX Bootstrapper 项目结构

WiX Bootstrapper:如何从命令行设置刻录变量?

从 Wix Bootstrapper Bundle 检查文件版本

自定义 Bootstrapper UI,类似于自定义的 wix UI

WiX Burn Bootstrapper 不调用 OnDetectRelatedBundle