Skip to content
⌘ NSIS Forum Archive

RegDLL Only When Files Not Overwritten

3 posts

mjohnson1979#

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?
DuaneJeffers#
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