Archive: Overwrite always, but silently


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


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

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

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

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

Extract the file to another location (in the temp or installation folder) and use Rename /REBOOTOK


Good idea, I'll give it a try.

Thanks