Archive: Upgrade DLLs ONLY if the installed version is lower?


Upgrade DLLs ONLY if the installed version is lower?
I'm not sure how to work this, since there is no inequality stuff in NSIS that I know of. I can GET the DLL version sure and I can check if they are EQUAL but as far as I know there's no way of doing this. So, anyone?


Use the UpgradeDLL macro. You can find this macro in the NSIS 2 documentation or in the archive: http://nsis.sourceforge.net/archive/....php?pageid=38

And about the inequality stuff: IntCmp can jump to different locations when the value is lower, equal or higher.


Well IntCmp won't jump anywhere in the case of <> so that's at least one way.


Can I concatenate strings and then test?


What do you mean? And why not use UpgradeDLL?


Does UpdateDLL actually check versions before it upgrades? I was under the impression that it just automated the process of reboot-overwriting DLLs that couldn't be removed.


UpgradeDLL first checks the version. It only updates if an older DLL is installed. It also handles registering, reboots, register-on-reboot etc.