2016-11-10 61 views

回答

1

Windows安裝程序使用的數據文件的時間戳更新過程中決定一個數據文件需要被更新:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa370531(v=vs.85).aspx

以及創建和修改日期來獲得在安裝時設置。因此,在安裝之前修改日期並沒有什麼區別,因爲Windows安裝程序會將創建日期和修改日期設置爲相同,以便在安裝後檢測到任何更改。安裝後更改它們可能會破壞更新檢測機制。如果它們是二進制文件,則使用版本來識別特定版本。

參見:

https://blogs.msdn.microsoft.com/astebner/2013/05/23/updating-the-last-modified-time-to-prevent-windows-installer-from-updating-an-unversioned-file/

他刻意改變日期後安裝以防止改寫。換句話說,正如我所說的,如果您在安裝後更改日期,您正在修改補丁/升級覆蓋規則。

+0

我沒有遇到過像MSI輸入文件那樣的場景,從MSI到Program Files文件夾的輸出文件總是有相同的時間戳。那麼我假設這種行爲是通過某些屬性來控制的。無論如何,我希望通過MSI包裝步驟更改輸入文件的時間戳,而無需使用像Renamer等工具。 –

+0

取決於「timestamp」的含義,因爲有幾個。 Windows安裝程序將創建時間設置爲與修改時間相同,其中一個不會更改,因此也許這就是您正在查看的那個。這不是一項可選功能或由某個屬性控制。只需查看輸入文件的創建和修改時間戳,然後安裝設置並檢查它們。整個「不覆蓋修改後的文件」取決於此,如果它不這樣做,這將是一場災難! – PhilDW

相關問題