Repository navigation
FluentSetup 1.0.0
First public release.
Installer runtime (Setup.exe)
- Native C++20 bootstrapper with a statically linked VC runtime and a built-in zstd decoder: no .NET, VC++
redistributable, WebView2 or network access needed at install time. Under 1 MiB of overhead for a typical app. - WinUI 3 front end in the style of the Windows App Installer, with a Win32 fallback that has the same layout and
takes over without restarting anything. English, Simplified Chinese, Japanese and Korean built in; any other language
from the package. Light, dark and high-contrast themes, per-monitor DPI, UI Automation. - Per-user or per-machine installs, upgrade, reinstall, downgrade protection, Apps & features registration, shortcuts,
a self-removinguninstall.exe. A write-ahead journal and backups give byte-for-byte rollback on failure or cancel. - Per-file SHA-256 and Authenticode checks; per-machine work only in a separately elevated worker that installs its
own embedded package; unsafe install paths refused. - Prerequisites with version checks (.NET Framework, .NET runtimes, WebView2, Windows App Runtime), installed from a
bundled installer or a verified https download. - Declarative extensions: close running processes (or ask the app to exit), options and required components,
actions from the app's own files with fallbacks, NGen, PATH, uninstall cleanup (scheduled tasks, Run values,
shortcuts, data, registry keys, changes the app made with administrator rights), user data the user decides about. - Variants: one package can carry a self-contained and a framework-dependent build; shared files are stored once.
Replacing Inno Setup and NSIS installers
- Adopts an existing installation by its uninstall key (
adoptExistingInstall,legacyUninstallKeys) and keeps its
folder; upgrades pre-fill the choices an Inno Setup install recorded. - Understands the command lines in-app updaters already use: Inno Setup
/SILENT(progress window only, closes after
success),/VERYSILENT,/DIR=,/LOG=,/TASKS=,/RELAUNCH=1, and NSIS/S,/D=,/UPDATE. - A quiet per-machine update started without administrator rights shows the UAC prompt instead of failing.
install.cleanup.removeFilesremoves the old uninstaller (unins000.exe),install.startMenuFolderkeeps a Start
menu folder,options[].detectupdates an app-managed autostart in its current state,options[].quietDefault
keeps scripted first installs from doing what a checkbox offers.{InstallDir}\…in uninstall data paths for logs and caches the app writes into its own folder.
Building packages
fluentsetupCLI:build,validate --json(codes and field paths),inspect --verify,init,locale add,
guide(the complete authoring guide, also for AI tools) andschema.$(Name)variables in the project file, set from CI withfluentsetup build -D Version=1.2.3.- WinUI 3 Builder app that edits every setting of the project file, with live validation, file preview, installer
preview, build history and package inspection. - GitHub Action:
uses: TIANLI0/FluentSetup@v1installs the CLI on a Windows runner. - Updates of FluentSetup itself: the Builder checks GitHub Releases once a day (can be turned off in Settings) and
installs a new version with a progress window, then opens again;fluentsetup update [--check]on the command line.
The download must matchSHA256SUMS.txtand GitHub's own digest.