dantemw
12th April 2007 00:27 UTC
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
dantemw
12th April 2007 00:33 UTC
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.
Brummelchen
12th April 2007 13:54 UTC
System::Call 'bla'
...
System::free 0
NSISArray
${myarray->Delete}
RTFM :mad:
dantemw
12th April 2007 20:03 UTC
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
Brummelchen
12th April 2007 20:42 UTC
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.