rpetges
25th April 2003 21:33 UTC
Overwrite always, but silently
Hi,
I have an application DLL (language resource) that is always locked and that should always be overwritten when updated without any user intervention.
Currently, I use the UpgradeDLL macro who checks the Version of the DLL and skips when it's equal... I need to always overwite !
How can I do this silently, i.e. I don't want a message prompted to the user like "Error opening file for writing......".
Many thanks
Romain
Afrow UK
25th April 2003 21:40 UTC
If you want it to always overwrite the dll, can't you just use the...
SetOutPath (path to the dll file is on user's pc)
File (path to the dll on your local pc)
I don't see why you need to use the upgradedll macro if your not checking dll versions.
-Stu
rpetges
25th April 2003 21:52 UTC
If you want it to always overwrite the dll, can't you just use the...
SetOutPath (path to the dll file is on user's pc)
File (path to the dll on your local pc)
Indeed, you're right... don't know why I used the UpgradeDLL macro.
But my problem persits, I can't overwrite this file in a silent mode. The user must confirm an action on the following message box (see attached picture)
How can I bypass this error message ?
Thanks, Romain
Afrow UK
25th April 2003 23:32 UTC
Try this:
http://nsis.sourceforge.net/Docs/Chapter4.html#4.9.3.12
Use:
SetFileAttributes "$PROGRAMFILES\Romain's Software\Attribute Changer\aclang.dll" NORMAL
SetOutPath "$PROGRAMFILES\Romain's Software\Attribute Changer"
File "C:\path\to\local\aclang.dll"
SetFileAttributes "$PROGRAMFILES\Romain's Software\Attribute Changer\aclang.dll" READONLY|SYSTEM
This might work. So in effect, it will remove all flags from the users' aclang.dll, extract the new one, then put the flags back again. (I asume the flags must be READONLY and SYSTEM, but check what it should be.
This might not work if the dll is always in use.
-Stu
rpetges
25th April 2003 23:40 UTC
This might not work if the dll is always in use.
I think you overlooked something in my firt post ... I wrote that the file is always locked (in use)
But, it should be possible to bypass this error message and replace the file on reboot, or isn't this simply possible ?
Romain
Joost Verburg
26th April 2003 15:41 UTC
Extract the file to another location (in the temp or installation folder) and use Rename /REBOOTOK
rpetges
26th April 2003 15:51 UTC
Good idea, I'll give it a try.
Thanks