2012-11-28 23 views
2

我有一個MSI軟件包,它安裝了一個驅動程序,但驅動程序的卸載需要重新啓動。爲此,我在InstallFinilize之後安排了標準自定義操作(scheduleReboot),該工作正常。如果文件版本有變化,安排重新啓動

現在我想只在我更換「驅動程序」文件時重新安排重新啓動。有什麼方法可以確定「已安裝文件版本」和「待安裝文件版本」,並基於同情心,如果有變化,則安排重新啓動。

回答

0

在某些情況下,Windows安裝程序可以確定是否需要system restart。例如,可以使用ScheduleReboot action來強制安裝程序在安裝需要重新啓動的驅動程序後提示重新啓動。如果安裝程序嘗試替換正在使用的文件,即使未使用ScheduleReboot,它也會自動提示用戶重新啓動。 ForceReboot action必須始終與條件語句一起使用,以便安裝程序僅在必要時觸發重新啓動。例如,如果替換特定文件或安裝特定組件,則只需要重新啓動。

每個產品安裝都是唯一的,可能需要自定義操作來確定是否需要重新啓動。 Windows安裝程序數據庫中有一些表格,您可以使用這些表格來設置屬性,並用於Searching for Existing Applications, Files, Registry Entries or .ini File Entries

注意:當Replacing Existing Files時,Windows安裝程序確定組件的密鑰文件是否已安裝,然後再嘗試安裝任何組件的文件。如果安裝程序發現與目標位置中安裝的組件密鑰文件名稱相同的文件,則會比較兩個密鑰文件的版本,日期和語言,並使用文件版本控制規則來確定是否安裝由包。如果安裝程序確定需要在密鑰文件上替換組件庫,則它會使用每個已安裝文件上的文件版本控制規則來確定是否替換該文件。

相關問題