User Guide
11.3 · Licensing and Updates

Auto-Updates

Tex checks for new releases on startup and installs them on exit via a dedicated helper process. The update flow is driven by IAutoUpdateService, surfaced through UpdateCheckDialog, and applied by Tex.UpdateHelper.exe (self-contained console app).

Startup check

If Update.CheckOnStartup is true (default), the service polls the release feed shortly after MainWindow loads. The UpdateCheckDialog is only shown if an update is available — a silent "up to date" result is not surfaced unless the user triggered the check manually.

Dialog states

StateDisplay
CheckingSpinner with "Checking for updates..."
Up to dateGreen check, current version, Close button
Update availableTarget version, release notes, Download / Later / Skip buttons

Action buttons

ButtonEffect
DownloadDownloads the installer payload now; install is deferred to next exit
LaterDismisses the dialog; you will be prompted again on next startup
SkipMarks this version skipped; you will not be prompted again until a newer version ships

Silent install on exit

If Update.AutoInstallOnRestart is true (default), a downloaded update is applied by Tex.UpdateHelper.exe the next time the app exits. The helper:

  1. Waits for all Tex.Wpf.exe processes to close.
  2. Replaces the install directory with the downloaded payload.
  3. Relaunches Tex.Wpf.exe with a post-update launch argument (see below).
Tip

Setting — Disable Update.AutoInstallOnRestart if you want manual control; the downloaded payload is preserved and you can install it later.

Post-update launch arguments

When Tex restarts after the helper finishes, one of these arguments is passed:

ArgumentMeaning
--post-updateInstall succeeded; show a confirmation notification
--update-failed --error-code=NHelper failed; show the error with the code
--update-cancelledUser cancelled during install; no changes applied

Manual check

Open Settings > License and Updates and click Check Now. This runs the same service call as the startup poll but always surfaces the result — including the "Up to date" state.

Tip

Tip — The startup check respects Update.CheckOnStartup; the manual button does not. Use Check Now if you have disabled startup checks on a metered connection.