i'm a bit of a newbie so please excuse me i'f i've missed something obvious 🙂
i want to install the file 'dao360.dll'. i do this with UpgradeDLL. everytime i run my nsis install program it says i have to reboot. i believe the code is asking this to rename, then register, the dll. while restarting i get an error roughly saying "couldn't find module temp_path\temp.file\dao360.dll" ( where temp_path is the temp path the file got extracted to, temp.file is the temporary file that got created, and dao360.dll is what the file should be renamed to ). which doesn't sound like it's even looking in the right place to me. the UpgradeDLL code looks like it should be looking for temp_path\dao360.dll. i'm using the latest tested release of NSIS, 2.0b4, and the latest version of UpgradeDLL.
any reasons this error might arise ?
the only possibility i can think of is the macro i use to call UpgradeDLL. I previously used MS P&DW and in examining that source code and found it handled this one file a little different. I have tried to take this into account with a custom macro. dao360.dll is the only file i use this custom macro on. i think this is probably the source of my error.
!macro UpgradeDAODLL LOCALPATH LOCALFILE
Push $R0 ; Gunna hold DAO dir
ClearErrors
ReadRegStr "$0" "HKLM" "SOFTWARE\Microsoft\Shared Tools\DAO350" "Path"
IfErrors er1 er2
er1:
DetailPrint "Unable to find DAO path.$\nFile ${LOCALFILE} has not been installed !"
Goto end
er2:
; Please note - this codes assumes the DAO350\Path key points to a file called ( or at least of the same length ) as dao350.dll
StrCpy $R0 $0 -10 ; 11 chars is 'dao350.dll' + a '\'
!insertmacro UpgradeDLL "${LOCALPATH}\${LOCALFILE}" "$R0\${LOCALFILE}" "$SYSDIR"
Goto end
end:
Pop $R0
!macroend