Anyone have version checking code to allow the NSIS installer to copy files on top of older files while preventing newer files from be overwritten by performing a version check of the file being copied such as file date, size and time stamp.
Thanks
Steve
Version checking code snippets? Anyone?
5 posts
RedWine, that option only works with the file command. If you use CopyFiles, then you're out of luck. (There is an open request item dealing with this.)
My best suggestion would be to use XCOPY with nsExec to do the work. (From a Windows command, type 'xcopy /?' to get a list of all the command options.)
Otherwise, you'll have to "invent" your own code within NSIS to handle it.
My best suggestion would be to use XCOPY with nsExec to do the work. (From a Windows command, type 'xcopy /?' to get a list of all the command options.)
Otherwise, you'll have to "invent" your own code within NSIS to handle it.
WordFunc.nsh has an ${VersionCompare} function and with GetDLLVersion & GetDLLVersionLocal (it works with any files that contains version information) you can get the versions from the files.
Example:
PaR
Example:
It's quite much code for just one file, but it should work. I haven't tested it though.!include "WordFunc.nsh"
...
GetDLLVersionLocal "C:\myfile.exe" $R0 $R1
IntOp $R2 $R0 / 0x00010000
IntOp $R3 $R0 & 0x0000FFFF
IntOp $R4 $R1 / 0x00010000
IntOp $R5 $R1 & 0x0000FFFF
StrCpy $0 "$R2.$R3.$R4.$R5"
GetDLLVersion "$INSTDIR\myfile.exe" $R0 $R1
IntOp $R2 $R0 / 0x00010000
IntOp $R3 $R0 & 0x0000FFFF
IntOp $R4 $R1 / 0x00010000
IntOp $R5 $R1 & 0x0000FFFF
StrCpy $1 "$R2.$R3.$R4.$R5"
${VersionCompare} $0 $1 $R0
IntCmp $R0 1 skipfile skipfile 0
File "C:\myfile.exe"
skipfile:
PaR
Thank you all! I will pass this helpful info to my programmer.
Again, Thanks!😁
Again, Thanks!😁