Oleaut32.dll
stdole2.tlb
msvcrt.dll
Upon installation on a machine with older libraries, the reboot prompt occurrs (correctly). However the libraries are not upgraded upon reboot.
The first two are part of the vb6 runtime libraries. The last is required for installation of the microsoft scripting runtime libraries (scrrun.dll).
I searched for and read a post by a user having the exact same problem:
Are you a developer who uses NSIS to distribute your application? Are you a Winamp plug-in developer who wants to use NSIS to distribute your plug-in? Have suggestions for other people like you? This is the place.
where the conclusion by Joost Verburg was that the library in question (msvcrt.dll) is a protected library.
I am wondering if this is still thought to be the case or if there is a workaround that has been found (the original post is a couple of years old). I would not think the vb runtime libraries are protected. Can I verify what dlls are protected somewhere in the registry?
I am using NSIS v2.0. Here is a small snippet of code from the script:
*************
!insertmacro UpgradeDLL ${VBFILESDIR}\Oleaut32.dll $SYSDIR\Oleaut32.dll $SYSDIR
!define UPGRADEDLL_NOREGISTER
!insertmacro UpgradeDLL ${VBFILESDIR}\Stdole2.tlb $SYSDIR\Stdole2.tlb $SYSDIR
!insertmacro UpgradeDLL ${VBFILESDIR}\msvcrt.dll $SYSDIR\msvcrt.dll $SYSDIR ;required if installing scrrun
!undef UPGRADEDLL_NOREGISTER
**************
Does anyone know how to upgrade these files or what might be happening? Is it possible another app/service is grabbing the dlls before the RunOnce registry key is fired (this occurrs after a logon)? As you can tell from the code, only one file is registered but all three are set to be renamed and copied from temporary files on reboot.
Thanks for the help.
Sorry for the long post.
Paul