如果文件版本发生更改,请安排重新启动

时间:2012-11-28 11:52:31

标签: wix windows-installer wix3.5

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

现在我想只在我更换"驱动程序"文件。有没有办法确定"已安装的文件版本"和#34;要安装的文件版本"并且基于同情心,如果有变化,请安排重启。

1 个答案:

答案 0 :(得分:0)

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

每个产品安装都是唯一的,可能需要自定义操作来确定是否需要重新启动。 Windows安装程序数据库中有一些表,您可以将其用于Searching for Existing Applications, Files, Registry Entries or .ini File Entries并设置属性。

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