修补程序创建属性(PCP)文件中包含值为1(一)的IncludeWholeFilesOnly属性为dll提供了worng时间戳

时间:2014-11-06 07:14:15

标签: deployment windows-installer installshield patch

我正在为产品创建补丁。在修补程序安装期间,我不希望修补程序访问原始文件的详细信息。因此,在Patch创建属性中,我已将IncludeWholeFilesOnly的值更改为1。

修补程序创建属性(PCP )文件中的' IncludeWholeFilesOnly' 属性值为1(一)会传递错误的时间戳对于在该特定补丁中提供的未版本化的 dll&#39>

问题是代替dll修改时间戳,它显示了补丁创建时间戳。

如果我将 IncludeWholeFilesOnly 的值更改为0,那么一切都会正常。

如何解决此问题。是否有任何其他属性我可以修改,以便时间保持不变。

1 个答案:

答案 0 :(得分:0)

时间戳是无关紧要的(即使它们是你的),因为它们不用于任何地方来决定文件是否是最新的。所以系统不会保留它们。当您安装非版本化文件时,它会将创建日期和修改日期设置为相同,以便任何修改都将更改修改日期,Windows将假定该文件已更新,因此修补程序不会覆盖它。

根据版本规则替换或不替换版本化二进制文件;根据文件哈希值替换或不替换数据文件:

http://msdn.microsoft.com/en-us/library/aa368599(v=vs.85).aspx

,例如您的非版本化文件:

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

所以这就是它的工作方式,日期不会用来决定哪个是最新的。管理二进制文件版本的最佳方法是使用文件版本。

是否存在实际问题,或者您是否不喜欢日期更改的方式?