BetterWinTab ships as two release artifacts: a Windows installer built with Inno Setup and a portable zip containing the same self-contained binaries. Both are produced from a singleDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/sgm1018/BetterWinTab/llms.txt
Use this file to discover all available pages before exploring further.
dotnet publish output directory. You can build and release entirely manually, or let the GitHub Actions workflow handle everything automatically when you push a version tag.
Publish a Self-Contained Release Build
The publish step compiles BetterWinTab in Release configuration, bundles the .NET runtime and Windows App SDK, and writes everything to an output folder that can be run on any supported Windows machine without additional installs.SelfContained=true, WindowsAppSDKSelfContained=true) ensure the output is fully standalone. In Release configuration, PublishReadyToRun=True and PublishTrimmed=True are applied automatically by the profile.
Available Publish Profiles
Three publish profiles are provided underProperties/PublishProfiles/. Each produces a self-contained output for its target architecture:
| Profile file | Platform flag | Runtime identifier | Output path |
|---|---|---|---|
win-x64.pubxml | x64 | win-x64 | bin\Release\net8.0-windows10.0.19041.0\win-x64\publish\ |
win-x86.pubxml | x86 | win-x86 | bin\Release\net8.0-windows10.0.19041.0\win-x86\publish\ |
win-arm64.pubxml | ARM64 | win-arm64 | bin\Release\net8.0-windows10.0.19041.0\win-arm64\publish\ |
Build the Installer (Inno Setup)
The Inno Setup script (installer.iss) packages the x64 publish output into a per-user Windows installer with optional startup and desktop icon entries.
The installer script requires the WebView2 Evergreen Bootstrapper (
MicrosoftEdgeWebview2Setup.exe, ~1.6 MB) to be present at redist\MicrosoftEdgeWebview2Setup.exe before you run Inno Setup. Download it from the Microsoft Edge WebView2 page and place it in the redist\ folder at the root of the repository. The GitHub Actions workflow downloads this automatically; for local builds you must do it manually once.Place the WebView2 bootstrapper
Download
MicrosoftEdgeWebview2Setup.exe from https://developer.microsoft.com/microsoft-edge/webview2/ and copy it to:Compile the installer with Inno Setup
Build a Portable Zip
The portable distribution is simply the publish output folder compressed into a zip archive. No additional tools are required beyond the standardCompress-Archive cmdlet.
BetterWinTab.exe directly — no installation step required.
Installer Features
The Inno Setup script (installer.iss) produces an installer with these characteristics:
| Feature | Detail |
|---|---|
| Install scope | Per-user (PrivilegesRequired=lowest) — no UAC prompt required |
| Startup entry | Optional; presented as checked on first install (checkedonce flag); written to HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run |
| Desktop icon | Optional; presented as an unchecked task during setup |
| WebView2 Runtime | Automatically installed silently from the bundled bootstrapper if not already present on the machine |
| Uninstall | Removes all files from the install directory and deletes %APPDATA%\BetterWinTab (user settings and state) |
Automated GitHub Actions Release
The repository includes a GitHub Actions workflow (.github/workflows/release-on-tag.yml) that runs the entire release pipeline automatically when you push a version tag.
Trigger
Push any tag matchingv* from the main branch:
Validate the tag is on main
The workflow checks that the tagged commit is reachable from
origin/main. If not, the release is skipped and no artifacts are produced.Extract the version number
The tag name (e.g.
v1.2.0) is stripped of its v prefix to produce the bare version string (1.2.0) used for installer filenames and the GitHub release title.Set up .NET 8
The workflow uses
actions/setup-dotnet@v4 with global-json-file: global.json, ensuring the exact SDK version pinned in the repository is used.Install Inno Setup
Inno Setup 6 is installed on the
windows-latest runner via Chocolatey (choco install innosetup).Download the WebView2 bootstrapper
MicrosoftEdgeWebview2Setup.exe is downloaded from the official Microsoft URL and placed at redist/MicrosoftEdgeWebview2Setup.exe.Build the installer
ISCC is invoked with Output:
/DAppVersion=<version> so the installer filename and metadata match the tag:installer-output\BetterWinTab-Setup-1.2.0-x64.exeSkipping Non-Main Tags
If the tagged commit is not reachable fromorigin/main, the workflow logs a message and exits cleanly without building or publishing anything. This prevents accidental releases from feature branches or detached HEAD states.