简短回答:我的猜测是,一个正在使用的文件(锁定)导致了自动重启提示的调度出现。锁定文件几乎总是导致此类问题的原因,并且提示是 MSI 本身的内置功能。正在使用的文件可能是未正确关闭的服务文件(MSI 中的超时或设计错误)。下面的一些细节。You should enable logging to work out what triggered the reboot prompt
.
Docs Microsoft:重新启动请求的记录。来自日志文件的示例:
Info 1603. The file E:\testdb\Test\CustAct2.dll is being held in use.
Info 1903.Scheduling reboot operation: Deleting file [filename]. Must
reboot to complete operation.
日志记录:您应该启用日志记录以找出触发重启提示的原因。这是关于日志记录的答案: Enable installation logs for MSI installer without any command line arguments。您可以1)
启用日志记录策略,然后您可以找到在 TEMP 文件夹中运行的每个卸载的日志。2)
您还可以调用卸载msiexec.exe /x
并在命令行中指定日志记录位置。有关详细信息,请参阅链接的答案。
卸载日志:有关卸载日志命令,请参见此处的第 3 节:在不使用 msiexec 的情况下从命令行卸载 MSI 文件
msiexec.exe /x "c:\filename.msi" /QN /L*V "C:\msilog.log" REBOOT=ReallySuppress
msiexec.exe /x {11111111-1111-1111-1111-11111111111X} /QN /L*V "C:\msilog.log" REBOOT=ReallySuppress
重新启动提示原因:很可能导致重新启动提示的原因是文件正在使用,因此无法删除。MSI 具有自动魔术功能,然后触发重新启动以替换或删除文件。重新启动使这成为可能。重新启动提示还有许多其他潜在原因。您可以注册需要重新启动才能正确取消注册的内容。与使用中的文件相同,但它可能涉及系统范围内的各种注册。
服务:使用中的文件的一个特例是服务。你的设置里有吗?很多时候,重新启动提示是由服务未正确关闭引起的。这可能是因为时间问题(停止速度太慢),或者安装程序中没有适当的命令用于卸载场景来停止服务,因为它应该在卸载时停止。
REINSTALLMODE:请注意,将REINSTALLMODE 属性为"amus"
- 强制覆盖(文件和注册表) - 已表明会导致许多 MSI 软件包在安装时出现更多重新启动提示(也会影响卸载,尽管我不经常看到它设置用于卸载)。
重启管理器:Windows 中有新功能可以处理重启问题。The overall idea is to prefer to shut down applications auto-magically with a restart parameter registered for the application to restart itself after the deployment operation - rather than triggering system reboots
. 这里有关于此功能的信息: