3

我有一个安装驱动程序的 MSI 软件包,但是卸载驱动程序需要重新启动。我为此安排了一个标准自定义操作(scheduleReboot)之后InstallFinilize,效果很好。

现在,我只想在替换“驱动程序”文件时安排重启。有没有办法确定“已安装的文件版本”和“要安装的文件版本”并基于同情心,如果有变化,安排重启。

4

1 回答 1

0

在某些情况下,Windows Installer 可以确定是否需要重新启动系统。例如,ScheduleReboot 操作可用于强制安装程序在安装需要重新启动的驱动程序后提示重新启动。如果安装程序尝试替换正在使用的文件,即使没有使用 ScheduleReboot,它也会自动提示用户重新启动。ForceReboot操作必须始终与条件语句一起使用,以便安装程序仅在必要时触发重新启动。例如,可能仅在替换特定文件或安装特定组件时才需要重新启动。

每个产品安装都是唯一的,可能需要自定义操作来确定是否需要重新启动。Windows 安装程序数据库中有一些表格,您可以使用这些表格搜索现有应用程序、文件、注册表条目或 .ini 文件条目并设置属性。

注意:当替换现有文件时,Windows Installer 会在尝试安装任何组件的文件之前确定组件的密钥文件是否已经安装。如果安装程序在目标位置找到与安装的组件的密钥文件同名的文件,它会比较两个密钥文件的版本、日期和语言,并使用文件版本控制规则来确定是否安装由包裹。如果安装程序根据密钥文件确定需要替换组件,则它使用每个已安装文件的文件版本控制规则来确定是否替换文件。

于 2012-11-29T23:18:22.763 回答