Skip to content

Skip restore point and drop wildcard RemoveFile from installer - #81

Merged
danielchalmers merged 1 commit into
mainfrom
msi-fastinstall
Oct 6, 2026
Merged

danielchalmers merged 1 commit into
mainfrom
msi-fastinstall

Conversation

@danielchalmers

Copy link
Copy Markdown
Owner

Changes

Ports three fixes from Radial Actions (danielchalmers/RadialActions#87 and #91):

  • MSIFASTINSTALL=1. Windows Installer creates a System Restore point for installs that show a window, which can hold a double-click install at "Please wait while Windows configures Sentry Deck" for most of a minute. It took 49 s in one Radial Actions run. The restore point protects nothing in a per-user %LocalAppData% folder.
  • Removed RemoveFile Name="*.*" On="both". Every upgrade uninstalls the old version first, so this row deletes anything sitting next to the exe on every upgrade and uninstall. It deletes nothing today, because Sentry Deck keeps no files there (logs go to %LocalAppData%\SentryDeck\logs, and FFmpeg goes in a subfolder the row doesn't recurse into). It's the same line that deleted Radial Actions users' settings, though, and it has no purpose: the default upgrade schedule already removes the old product's files.
  • artifactErrorsFailBuild: true in deploy.yml, so a failed asset upload turns the release job red instead of leaving a release with missing downloads.

Validation

  • Built the MSIs locally with WiX 6.0.2 from a Release publish, using CI's commands.
    • x64 and arm64 both build.
    • The decompiled tables show MSIFASTINSTALL=1 and no RemoveFile row.
    • wix msi validate reports only the ICE03 and ICE64 errors main's package already has, so nothing new.
  • Tested with an isolated test product that has its own UpgradeCode, folders and registry key, with a marker file next to the exe standing in for user data.
    1. main's design (1.1.0) to this one (1.1.1), with the app running:
      • Restart Manager closed the app;
      • the new package logged "SRSetRestorePoint skipped";
      • 1.1.1 started as the only copy.
      • The old package's own RemoveFile still deleted the marker. That will happen once, on the upgrade away from 1.1.0, because the old package's rules apply when it removes itself.
    2. This design to this design (1.1.1 to 1.1.2), with the app running:
      • no restore point calls at all;
      • the marker survived;
      • the app restarted as one copy.
    3. Uninstall while running: the app closed, every installer-owned file and the Start menu entry were removed, and the marker was kept.

No C# changed, so the build, format and test steps aren't affected.

…oad errors

- MSIFASTINSTALL=1: a double-click install can otherwise sit at "Please wait" while Windows creates a System Restore point, which protects nothing in a per-user app folder.
- Remove RemoveFile Name="*.*" On="both": every upgrade uninstalls the old version first, so it would delete anything the app keeps next to the exe. It deletes nothing today, but it's the line that deleted Radial Actions users' settings.
- artifactErrorsFailBuild: a failed asset upload now fails the release job instead of leaving it green.
@danielchalmers danielchalmers changed the title Skip the restore point and drop the wildcard RemoveFile from the installer Skip restore point and drop wildcard RemoveFile from installer Oct 6, 2026
@danielchalmers
danielchalmers merged commit 1ec1619 into main Oct 6, 2026
1 check passed
@danielchalmers
danielchalmers deleted the msi-fastinstall branch October 6, 2026 00:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant