Archive: Deferring Delete of DLLs at end of install


Deferring Delete of DLLs at end of install
At the end of an NSIS install there seems to be a cleanup phase that deletes DLLs used by the installer such as "nsExec.dll" and "System.dll". However if one of these DLLs is in use at the time of delete it gets marked for delete on Reboot.

Is it possible to modify this cleanup behavior to either:
1. Not delete on reboot
2. Be invoked by calling into the installer with a command-line rather than automatically happening at the end of the script?

Thank You,
Michael


Nevermind. I discovered that it was the NSISArray DLL that was marked for delete on reboot. I just added:
Function .onGUIEnd
NSISArray::Unload
FunctionEnd

And all is well.


System::Call 'bla'
...
System::free 0

NSISArray
${myarray->Delete}

RTFM :mad:


Thank you for your reply angry face. Your tip has helped me a great deal, and I will continue to RTFM as I have in the past.

--
Michael


nm...

sometimes i ask also stupid questions where i know the
answer after a couple of minutes while try&error or reading
over and over the faq.

well - idd - i made same error with nsisarray - the key
for reboots is in registry and called "pending operations"
i have my own tool to clear those mistakes.