1

我已经创建了运行 CustomAction 以启动 exe 并开始安装的安装程序,一旦完成安装,它就会自动退出,在安装程序卡住并显示带有此消息的对话框后,请等待安装程序正在安装 [setup name]。对话框保留此消息,并且永远不会进入具有完成命令按钮的对话框。这在 Windows Server 2012/2016 中运行良好

我在那里打开任务管理器,我可以看到大约 4 个 msiexec 正在运行 2 个 32 位进程,如果我结束 32 位 msiexec 进程,则安装程序更改为使用完成命令按钮对话框

有人可以帮忙吗?

4

2 回答 2

0

我从下面的链接中找到了解决方案,请参阅 Ben Collins 给出的答案。

从 WiX 静默执行 PowerShell 脚本会挂起 PowerShell

于 2019-06-10T13:52:36.000 回答
0

被认为有害的并发:您不应通过自定义操作从 MSI 设置中运行嵌入式安装程序。对于 MSI 文件,存在技术上的不可能( 1 , 2 , 3 , 4) - 本质上一次只能运行一个 MSI 安装序列(除非您从用户界面启动它们,这是不建议的,因为您当时的设置静默安装失败)。对于 EXE 文件,它是难以调试问题的传奇来源。

刻录:更好的方法是使用WiX 刻录包(setup.exe) 按顺序开始安装 - 一个接一个。这是运行一个 EXE 设置和一个 MSI 设置的这种刻录包的快速示例。Burn 具有自己的日志记录机制。


卡住自定义操作:我猜从技术上讲,运行相关可执行文件的自定义操作卡住了。您如何对自定义操作进行排序?它们是否在用户界面序列中?他们在安装什么?设置?拉链提取?有什么土生土长的?

msiexec.exemsiexec.exe即使安装成功完成(我认为大约 10 分钟),这些进程也会在进程列表中保留一段时间。如果设置挂起,他们肯定会无限期地呆在那里。任务列表中可能有许多msiexec.exe进程 - 即使一切正常 - 因为具有 GUI 在用户上下文中运行和自定义操作在各种上下文中运行的 MSI 文件。多个用户也可以登录。

日志记录:您是否启用了日志记录,以便检查发生了什么?请尝试记录安装以查看其中的内容(有关如何为所有 MSI 安装启用日志记录,请参阅上一个链接 - 部分: “全局用于机器上的所有设置”)。以下是如何记录单个安装:

 msiexec.exe /i "Setup.msi" /L*V "C:\Setup.log"

上面的命令行已经实现了日志记录,但这里有更多关于日志记录和解释日志文件的细节:


于 2019-05-22T19:24:36.217 回答