更新引导程序结束安装 MSI 但在进度条上显示 60/70%

Posted

技术标签:

【中文标题】更新引导程序结束安装 MSI 但在进度条上显示 60/70%【英文标题】:Update bootstrapper end instalation MSI but show 60/70% on progress bar 【发布时间】:2020-07-23 07:28:50 【问题描述】:

我使用 msi 和引导程序创建我的安装程序 Wix。 我正在测试更新我的程序。并尝试安装新版本。我想总是使用引导程序。我不知道这是否总是如此,但我做了一些调整并为 MSI 安装的引导程序添加了一个进度条。事实证明,在更新时,此条停止在 60/70%,并且在关闭 MSI 后会出现一个新的引导程序窗口。关窗几次,第一个窗口的进度条跳到100%,我可以关窗了。

我不知道为什么会这样。

我检查了日志,在这两种情况下最后一行看起来像:

应用执行包:安装程序,操作:安装,路径:C:\ProgramData\Package Cache9428A5CF-824D-42D0-ABF7-BC69D4B8FEE7v1.0.26.40\EkInstaller.Elements.msi,参数:' MSIFASTINSTALL= "7" CONFIGFILELOCATION="C:\svn\122\dotNet\products\3_ek-graf-pre-v2\trunk\src\Ek.Installer\Ek.Installer.Bootstrapper\bin\Debug"'

除此之外,我不会在日志中显示不同之处:

[4EDC:2970][2020-07-23T08:54:34]i102:检测到相关捆绑包: 2e954545-621e-4062-a306-99197563c483,类型:升级,范围: PerMachine,版本:1.0.24.39,操作:MajorUpgrade

[4EDC:2970][2020-07-23T08:54:34]i102:检测到相关捆绑包: 770a1869-f4b5-4307-b05f-1f8be006757b,类型:升级,范围: PerMachine,版本:1.0.23.39,操作:MajorUpgrade

[4EDC:2970][2020-07-23T08:54:34]i102:检测到相关捆绑包: ff8d8a34-989d-4fb9-9aa7-2ab0440f514d,类型:升级,范围: PerMachine,版本:1.0.25.39,操作:MajorUpgrade

[4EDC:2970][2020-07-23T08:54:34]i103:检测到相关包: D512899C-F7CC-412C-9110-54CDE5BB2741,范围:PerMachine,版本: 1.0.25.40,语言:0 操作:MajorUpgrade

可能前三个用于安装引导程序的 NetFramework、Sql 和 SSMS,最后一个用于我的 MSI。

我正在尝试在 MajorUpgrade 中更改 Package 和 Schedule 中的 InstallerVersion。

安装程序非常复杂,我无法提供所有代码。也许有人知道这种行为的原因,并且可以指导我为什么会这样。

注意到当 MSI 进度条状态 =“删除文件”时,进度条引导程序停止。

编辑:

它为事件先前版本的引导程序生成额外的窗口引导程序。 如果我不更改版本引导程序,它不会产生对话框,并且在更新 msi 时它会正常进入 100%。

【问题讨论】:

【参考方案1】:

似乎是一个 wix 错误。对于安装的每个后续引导程序版本,关闭 MSI 窗口时会出现新的引导程序窗口。您可以通过更改每个新版本 Bundle 的 UpgradeCode 来修复它。如果您另外设置 DisableModify = "yes" DisableRemove = "yes" 那么在添加/删除程序中不会有额外的引导程序实例。

【讨论】:

以上是关于更新引导程序结束安装 MSI 但在进度条上显示 60/70%的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 savefiledialog 在进度条上显示进度?

下载大文件时在进度条上设置百分比不在 0 到 100 之间

在进度条上显示文件复制状态

是否可以在引导程序中的检测阶段之前从链中的 MSI 文件中读取 MSI 属性?

通过安装程序 (MSI) Windows 7 更新 Node.js 时看不到最新版本

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