Skip to main content

Documentation 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.

BetterWinTab is a native Windows application built with C#, .NET 8, and WinUI 3. Because it relies on native WinUI 3 and Win32 interop components, a few specific tools and settings are required to produce a working binary. This page walks you through every step from a fresh machine to a successful build.

Prerequisites

ToolRequired VersionNotes
Windows10 (19041+) or Windows 11Minimum build 19041 (20H1)
.NET SDK8.0.xPinned via global.json (8.0.100, rollForward: latestFeature)
Visual Studio CodeAny recent versionRecommended editor; C# Dev Kit extension advised
Inno Setup6.xOnly needed to build the installer — not required for development builds
Verify your .NET SDK version before proceeding:
dotnet --version
The output should start with 8.0. If it does not, install the correct SDK from dot.net.

Setup and Build

1

Clone the repository

git clone https://github.com/sgm1018/BetterWinTab.git
cd BetterWinTab
2

Restore NuGet dependencies

dotnet restore BetterWinTab.csproj
This pulls in Microsoft.WindowsAppSDK, Microsoft.Web.WebView2, CommunityToolkit.Mvvm, and the other packages declared in BetterWinTab.csproj.
3

Build for x64

Always pass -p:Platform=x64 when building. BetterWinTab uses native WinUI 3 and Win32 interop libraries that require a concrete platform target. Omitting the flag causes MSBuild to fall back to a platform-neutral output that is missing required native binaries, and the application will fail to start.
dotnet build BetterWinTab.csproj -p:Platform=x64
A successful build produces output at:
bin\x64\Debug\net8.0-windows10.0.19041.0\
4

Run the built executable

Start-Process "bin\x64\Debug\net8.0-windows10.0.19041.0\win-x64\BetterWinTab.exe"
Once the app is running, press Ctrl+Tab to show the overlay.

Build from VS Code

VS Code is the recommended editor for BetterWinTab development. The repository ships a preconfigured tasks.json that wraps the correct build invocations. Press Ctrl+Shift+B to run the default build task (build-x64). This task first kills any running BetterWinTab process, then invokes dotnet build with the correct platform flag and MSBuild logging options.

Available VS Code Tasks

All tasks are defined in .vscode/tasks.json. You can run any of them via Ctrl+Shift+P → Tasks: Run Task.
Task labelWhat it does
build-x64Kills any running BetterWinTab process, then builds for x64. Default build task (Ctrl+Shift+B).
buildSame as build-x64 but not marked as the default build group.
kill-betterwintabRuns Stop-Process -Name BetterWinTab -Force -ErrorAction SilentlyContinue — useful as a standalone step.
run-x64Depends on build-x64, then launches the compiled BetterWinTab.exe via Start-Process.
publishRuns dotnet publish using the project’s default publish profile.
watchRuns dotnet watch run with Platform=x64 and --runtime win-x64 for hot reload.

Why x64 Only for Local Builds?

The project declares three supported platforms — x86, x64, and ARM64 — and all three are supported for publishing release builds. For local debug builds, however, only x64 is practical:
  • The WinUI 3 / Windows App SDK native host components shipped in the NuGet packages require a resolved RID (win-x64) at build time.
  • arm64 cross-compilation is not supported by the .NET SDK’s WinUI tooling on a standard x64 development machine.
  • Release publish profiles (.pubxml) handle win-x86 and win-arm64 correctly because they are full self-contained publishes that bundle every native dependency.

Build docs developers (and LLMs) love