"Dedicated server dies at launch with 'You must install .NET to run this application'"
▸ SYMPTOM
A freshly installed sbox-server.exe (Steam app 1892930) exits immediately at launch with:
You must install .NET to run this application
App host version: 10.0.x
.NET location: Not foundNo game logic runs. The box has never hosted a .NET application before.
▸ CAUSE
The s&box dedicated server is not a self-contained .NET publish -- it requires the matching .NET runtime already present on the host machine. The required framework and version are declared in sbox-server.runtimeconfig.json (tfm: net10.0, Microsoft.NETCore.App 10.0.0 on engine build 26.07.08e). Only the base runtime (Microsoft.NETCore.App) is needed, not ASP.NET or WindowsDesktop.
A machine that has only ever run native-code servers (Unreal, Source, etc.) will not have any .NET runtime installed.
▸ FIX
Install the .NET runtime user-scoped (no admin/system install required):
# Download and run the official installer script
dotnet-install.ps1 -Runtime dotnet -Channel 10.0 -InstallDir C:\dotnet -NoPath
# Set environment in your launch script
$env:DOTNET_ROOT = "C:\dotnet"
$env:PATH = "C:\dotnet;$env:PATH"
# Now launch the server
.\sbox-server.exe +game org.yourpackageThis is fully additive -- no machine-wide runtime, no registry changes, safe on a shared hosting box. Confirm the version in sbox-server.runtimeconfig.json matches what you install.
▸ WHY IT WORKS
The .NET host (apphost) embedded in sbox-server.exe probes DOTNET_ROOT first, then the system install paths, for a compatible runtime. A user-scoped install pointed to by DOTNET_ROOT satisfies the probe without requiring administrator privileges or affecting other applications on the box. The -Runtime dotnet flag installs only the base runtime (smaller than the full SDK), which is all the server needs.