2017-08-24 12 views
2

我有一個每次運行時都會自動更新自身的應用程序。它通過比較程序目錄中每個文件的「已修改」時間戳,複製網絡文件共享中較新的文件來完成此操作。Inno在安裝文件上設置時間戳與源相比有一秒差距

我用Inno Setup Compiler打包了這個程序,並在測試系統上運行了最終的安裝程序。與編譯安裝程序時使用的文件相比,所有安裝的文件的時間戳都早了一秒。這會導致程序目錄中的每個文件在第一次運行時從文件共享中重新複製。這對於我們的帶寬有限的遠程用戶來說是個問題。

我已經嘗試了這麼多次,有和沒有在我的Inno Setup腳本和四個不同的測試系統中設置的「TimeStampsInUTC」指令。時間戳一直是一秒鐘。

這可能是Inno Setup Compiler中的問題嗎?有什麼建議可以解決這個問題嗎?我希望很快能夠在兩個新辦事處使用此安裝程序。

+0

由驅動器中使用怎樣的文件系統,你已經安裝了您的應用程序? –

+0

這些都是NTFS卷。系統是Windows 7和10的混合。 – whysyn

回答

1

TimeStampRounding directive,這是默認設置爲2:

默認情況下,對非external [文件]部分條目引用的文件時間戳四捨五入到最接近的2秒的邊界。 FAT分區只有2秒的時間戳分辨率,所以這確保時間戳在FAT和NTFS分區上的設置方式相同。

通過設置TimeStampRounding指令,可以更改或禁用舍入。 將其設置爲0將禁用舍入。將其設置爲1到60之間的數字將導致時間戳向下舍入到最接近的TimeStampRounding-第二邊界。

(重點煤礦)

+0

這種方式就像一種魅力!看起來巧合的是,我抽查的所有程序文件在他們的時間戳中都有奇數秒,所以這個舍入令我失望。 – whysyn