On 2/26/2018 12:45 PM, Jon Turney wrote:
> 
> You might find the code in [1] a good starting point for an alternate
> implementation, which doesn't require renaming the executable.
> 
> [1] https://cygwin.com/ml/cygwin-apps/2011-04/msg00054.html

Chris Faylor:
>>
>> Sounds wonderful but couldn't you just rename the original setup.exe
>> out of the way, copy a new version over it in place, and then
>> re-execute?

Jon Turney:
> I'm just following a sequence of actions which a bit of google
> research found other people had successfully used.

> what you suggest seems like it should work, although I'd perhaps be a
> bit wary of assuming that MoveFile() on the running executable works
> always.

But my suggestion removes the need to MoveFile() of the open executable
as the name of the new version file would be different.  The other
possibility I suppose would be to give the file being downloaded a name
with the version or date of download appended.  But I still think a
version number on the setup executable file name could potentially be
beneficial.

Benefits:
* A person could check cygwin.com and know that the version of setup he
has is different just by visually checking the name.
* The name of the executable represents the version expected by setup.ini.
* Historical preview of someone doing research for previous versions.
* Better serves convention with other projects delivering installers for
Windows executables; Firefox, Thunderbird, MySQL, Postgres, PHP, Apache,
etc. all have a version number for the Windows executable.

Drawbacks:
* Scripts using the name of the executable without the version.  This is
easily remedied by a symlink to the current executable.

-- 
cyg Simple

Reply via email to