Release v3.6: rebuild the self-updater (in-app, rollback-safe); warnings to front
Replace the generated cmd.exe + robocopy update helper — which silently
failed on some machines — with an in-app C# installer:
* Stage the new version to a per-user temp folder off the install and run
the new RemSound.exe from there, so nothing in the install is locked by
the updater itself.
* Wait for the old process to fully exit (real WaitForExit), then
back-up-and-swap files in C# with retry + rename-aside; roll the install
back to the previous version on any failure, so a failed update can never
leave a half-installed RemSound.
* Log every step to updater.log; clean up old stages and legacy batch
artefacts on launch. Removed the old BuildInstallScript batch generator.
Route the "RemSound is already running" dialog and its follow-up message
through ForegroundDialog so they surface in front from a background-relaunched
copy, matching the earlier post-update fix.
Docs: rewrite the readme update sections for the new mechanism, regenerate
MANUAL.md, refresh the About-box changelog and RELEASE_NOTES.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
4dbe9a47a0
commit
55bdcde0af
+8
-9
@@ -1001,14 +1001,13 @@ Use whatever key combinations you prefer (for example Ctrl+Shift+Up / Ctrl+Shift
|
||||
|
||||
<h3>What happens during an install</h3>
|
||||
|
||||
<p>RemSound can't replace its own program file while it's running, so an install starts a small helper that finishes the job once RemSound has closed:</p>
|
||||
<p>RemSound can't replace its own program file while it's running, so it hands the job to a fresh copy of the new version, which does the swap once RemSound has closed:</p>
|
||||
|
||||
<ol>
|
||||
<li>RemSound downloads the new version into a holding folder next to the running program.</li>
|
||||
<li>It writes a tiny helper alongside it that watches for RemSound to close.</li>
|
||||
<li>RemSound closes.</li>
|
||||
<li>The helper notices, copies the new files over the install folder, deletes the holding folder, and reopens RemSound on the same profile you were running.</li>
|
||||
<li>The helper deletes itself.</li>
|
||||
<li>RemSound downloads the new version into a temporary folder kept on your own machine, away from the install folder.</li>
|
||||
<li>It starts the new copy from that temporary folder, and closes itself.</li>
|
||||
<li>The new copy waits for RemSound to close fully, then moves your old program files aside and copies the new ones into place. If a file is briefly in use, it waits and retries rather than giving up.</li>
|
||||
<li>It reopens RemSound on the same profile you were running, and clears the temporary folder away.</li>
|
||||
</ol>
|
||||
|
||||
<p>You'll see the window close, then reopen on the new version within a second or two. Anything that was unsaved in the old session (a profile you were partway through editing, for example) is lost — RemSound will not save it for you before installing. Save first if you've been making changes.</p>
|
||||
@@ -1023,11 +1022,11 @@ Use whatever key combinations you prefer (for example Ctrl+Shift+Up / Ctrl+Shift
|
||||
|
||||
<h3>If an install fails</h3>
|
||||
|
||||
<p>The update download is best-effort: a flaky network, a locked install folder, or a temporarily-unavailable version will pop up a message saying it couldn't finish, and leave your running version untouched. The address of the download page is in that message, so you can get the new version in a browser and install it by hand if you need to. If you installed RemSound into <code>Program Files</code> without giving your account permission to write to that folder, the install helper's copy step will fail too — either fix the permission or move RemSound to a folder you can write to (somewhere inside your own user folder, for instance).</p>
|
||||
<p>The update download is best-effort: a flaky network, or a temporarily-unavailable version, will pop up a message saying it couldn't finish, and leave your running version untouched. The address of the download page is in that message, so you can get the new version in a browser and install it by hand if you need to. If you installed RemSound into <code>Program Files</code> without giving your account permission to write to that folder, the install can't replace the files there — either fix the permission or move RemSound to a folder you can write to (somewhere inside your own user folder, for instance).</p>
|
||||
|
||||
<p><strong>If the helper's copy step itself fails</strong> — most often because Dropbox or another sync app was holding the install folder's files open when the helper tried to replace them — the helper leaves a file called <code>update-failed.txt</code> next to the RemSound program, with details, and leaves the new files sitting in an <code>_update</code> subfolder. It does <em>not</em> reopen the old version in that case — so the next time you start RemSound by hand, you'll either get the still-old version with that note telling you what to do, or you can copy the contents of the <code>_update</code> folder over the install folder yourself. The most reliable fix is: close RemSound, wait 30 seconds for Dropbox to settle, start it again, and try <strong>Help → Check for updates</strong> once more — it almost always works on the second try.</p>
|
||||
<p><strong>If the file swap itself can't finish</strong> — for example because a sync app or another program was holding one of the files open and wouldn't let go — RemSound <em>puts your previous version back exactly as it was</em> and reopens it, rather than leaving you with a half-finished install. It writes a short note called <code>update-failed.txt</code> next to the program explaining what happened. Nothing is broken — just try <strong>Help → Check for updates</strong> again, and it almost always goes through on the next attempt. If a sync app like Dropbox is involved, closing RemSound and giving it half a minute to settle before retrying helps.</p>
|
||||
|
||||
<p>A step-by-step record of every helper run is kept in a helper log file in the install folder — useful if a failure keeps happening and you want to share it for diagnosis.</p>
|
||||
<p>A step-by-step record of every update is kept in a file called <code>updater.log</code> in the install folder — useful if a failure keeps happening and you want to share it for diagnosis.</p>
|
||||
|
||||
<h3>The About dialog and release notes</h3>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user