Archive: RegDLL Only When Files Not Overwritten


RegDLL Only When Files Not Overwritten
I'm creating a superpimp script to install a vb app and I thought I could just use the File method to copy over the dll's necessary... so I set the overwrite property to No... and I then register and unregister every dll...

But instead, I'd like to only register files that the installer copied over... for example: I want to put msxml.dll in the users system directory... it's not in their directory, so the File method puts it there, then I register it... but lets say msxml.dll *is* in the users directory, so instead of unregistering and registering again, I just want to say "I trust that it is already register", and be done with it.

Can this be done?


Yea, but this is done with the IfFileExists attribute. You can do something like this:


Section "RegDLL"
SetOutPath $SYSDIR
IfFileExists "$SYSDIR\msxml.dll" yes
File msxml.dll
RegDLL "$SYSDIR\msxml.dll"
yes:
SectionEnd


The "yes" item will allow you to skip the file registration IF the file exists

Hope this Helps,
-Duane

Thank you, that's exactly what I needed! :D