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 Bundle 检查文件版本