WGenPatDir.exe establish the differences between to directory trees. If a file exist with at the same place with the same name in both trees but differ in content, it will call WGenPat.exe to establish the binary block used to patch the original file to transform it into the destination file. The error you saw is printed by WGenPat.exe when the two files seem to have identical CRCs (MD5).
If one of the two files is bigger than 20 MB, WGenPatDir will call WGenPat with the /H option (= huge file) In this case of huge files, the MD5 is computed only on the first 64 KB and the last 64 KB in order to speed up the patch detection process.
Therefore, if the files are bigger than 20 MB and the first 64 KB and last 64 KB are identical, but the data in-between differ, it is possible that WGenPatDir detect a difference, and WGenPat finds them to be CRC-identical.
In general, big data files often starts or ends with some important information or version numbers which ensure that there will be some differences detected between two version of the file, but apparently, you are facing the opposite case.
Depending on the content of your files, the easiest solution would be to alter a little bit some data within the first or last 64 KB of the target file. If you really can't, then the solution might be to call WGenPat manually, without using the /H option, and add the patching line manually to your NSI script.
Hope this helps.
_________________ Le site Web de Wizou: http://wizou.fr
|