Skip to content

Building from Source

gokuthug1 edited this page Oct 5, 2026 · 1 revision

Building from Source

Prerequisites

Requirement Notes
Windows 10/11 x64 This is a WPF/WinForms application. It does not build on Linux or macOS
.NET 6.0 SDK or higher Verified against SDK 10.0.102
Git The wpfui dependency is a submodule
Python 3 Optional — only for Scripts/GenerateAssets.py

Clone

git clone --recurse-submodules https://github.com/gokuthug1/GokuTrap.git
cd GokuTrap

If you already cloned without submodules:

git submodule update --init --recursive

The wpfui submodule is required — the build fails without it.

Build

dotnet build GokuTrap.sln -c Release

Or restore and build in one step:

dotnet build GokuTrap.sln -c Release

Expected warnings The build succeeds with warnings and they are intentional. Do not suppress them.

  • NETSDK1138 — the net6.0-windows target framework is out of support. The supported target is deliberately unchanged.
  • WFAC010 — a WinForms analyzer advisory suggesting a startup DPI API. GokuTrap is a WPF application that owns its per-monitor DPI behaviour through its manifest, which is the correct approach here.

See Platform-Limits.

Run the checks

dotnet run --project tests/GokuTrap.FeatureChecks -c Release -- .

This must be run on Windows with a desktop runtime present. See Verification-Harness.

Publish a single-file executable

dotnet publish GokuTrap/GokuTrap.csproj -p:PublishSingleFile=true -r win-x64 -c Release --self-contained false

Output:

GokuTrap/bin/Release/net6.0-windows/win-x64/publish/GokuTrap.exe

CI uses the same command, additionally stamping provenance:

-p:CommitHash=<sha> -p:CommitRef=<ref_type>/<ref_name>

Regenerate assets

python Scripts/GenerateAssets.py

Synchronises and regenerates the multi-size .ico packages and showcase mockups from source. Only needed when changing icons or branding.

Project layout

Path Contents
GokuTrap/ The application
GokuTrap/FeatureServices/ Feature tools — Saiyan, sounds, accounts, catalog, radar, overlay, updater
GokuTrap/UI/ WPF views, view models and converters
GokuTrap/Models/ Persisted settings, API models and entities
GokuTrap/Resources/ Strings, icons, mods, bootstrapper styles
tests/GokuTrap.FeatureChecks/ The verification harness
wpfui/ Submodule — the WPF UI library
Scripts/ Asset generation
docs/ Delivery notes and the web portal

See Architecture-Overview.

Running from source

Build it, then run GokuTrap.exe. On first run it will open the installer, because no installation exists yet — choose a folder you own, not Program Files.

The harness runs against a temporary scratch directory and never touches your real installation. See Verification-Harness.

Before you open a pull request

dotnet build GokuTrap.sln -c Release
dotnet run --project tests/GokuTrap.FeatureChecks -c Release -- .

Both must pass, and the check count must not decrease — see Verification-Harness#Why the count matters. CI runs the same commands. See Contributing.

Clone this wiki locally