WiX - 如何防止引导程序自行安装;只安装链式包

Posted

技术标签:

【中文标题】WiX - 如何防止引导程序自行安装;只安装链式包【英文标题】:WiX - How to prevent bootstrapper from installing itself; only install chained packages 【发布时间】:2014-10-29 13:15:17 【问题描述】:

我有一个隐藏在程序和功能中的捆绑包:

<Bundle DisableRemove="yes" DisableModify="yes" ...

它将以下内容安装为 Chain 的一部分:

<ExePackage Permanent="yes" ...
<MsiPackage Visible="yes" DisplayInternalUI="yes" ...

ExePackage 是永久的,但 MsiPackage 不是。

问题出在这里

在我运行引导程序并安装包后,如果我从程序和功能中卸载 MsiPackage,然后再次运行我的引导程序,它将显示一个 卸载 选项...尽管如此所有非永久性软件包都已被删除的事实。这是为什么?我怎样才能防止这种情况?理想情况下,当我再次启动引导程序时,它应该直接进入带有选项的 UI,以再次安装捆绑包,而无需卸载引导程序。

【问题讨论】:

【参考方案1】:

您可以在 MsiPackage 上设置 Visible="yes" 以使其显示在 程序和功能。

您可以通过设置从程序和功能中隐藏捆绑包 DisableRemove="yes" DisableModify="yes"。

更多细节,请检查: Wixtool Burn install and uninstall 2 separated MSIs

【讨论】:

这只会对 ARP 隐藏引导程序,但仍会“安装”。

以上是关于WiX - 如何防止引导程序自行安装;只安装链式包的主要内容,如果未能解决你的问题,请参考以下文章

如何在升级过程中运行捆绑包时,如何在WIX(Windows安装程序xml)引导程序项目中将按钮文本更改为“升级”?

如何从包含多个 MSI 的 wix 自定义引导程序包中安装/卸载单个 msi,例如安装项目的添加/删除功能?

如何强制 WiX 引导程序下载 MSI 包?

修复 WiX 捆绑包时如何防止 .NET 修复?

WiX Burn:如何将安装程序可执行文件部署到某个位置?

如何设置 Wix 引导程序安装的产品代码