Auto-install .NET 8 runtimes if missing #14

Merged
justin merged 1 commits from runtime-prereqs into main 2026-05-08 14:22:59 -04:00
Owner

Fresh Windows Server installs hit aka.ms/dotnet-core-applaunch because the Service (ASP.NET Core 8) and GUI (Desktop 8) need their respective runtimes. The installer now detects what is missing under %ProgramFiles%\dotnet\shared\Microsoft.*.App\8.*, downloads via TDownloadWizardPage from aka.ms/dotnet/8.0/..., and runs /install /quiet /norestart. Treats 1638/3010/1641 as success. README + docs/installation.md document the auto-install + manual URLs; docs/troubleshooting.md has a section for diagnosing the missing-runtime case.

Fresh Windows Server installs hit `aka.ms/dotnet-core-applaunch` because the Service (ASP.NET Core 8) and GUI (Desktop 8) need their respective runtimes. The installer now detects what is missing under `%ProgramFiles%\dotnet\shared\Microsoft.*.App\8.*`, downloads via TDownloadWizardPage from `aka.ms/dotnet/8.0/...`, and runs `/install /quiet /norestart`. Treats 1638/3010/1641 as success. README + docs/installation.md document the auto-install + manual URLs; docs/troubleshooting.md has a section for diagnosing the missing-runtime case.
justin added 1 commit 2026-05-08 14:22:45 -04:00
A fresh Windows Server install has neither ASP.NET Core 8 nor .NET
Desktop 8, so the Service refuses to start and the GUI fails to
launch — the symptoms link to aka.ms/dotnet-core-applaunch but it's
not obvious from the GUI itself what's wrong.

Setup now:
- Detects each runtime by looking for an 8.x folder under
  %ProgramFiles%\dotnet\shared\Microsoft.{AspNetCore,WindowsDesktop}.App
- Uses Inno Setup's built-in TDownloadWizardPage to fetch any missing
  runtime from the aka.ms redirect and runs `/install /quiet /norestart`
- Treats Microsoft's 1638 / 3010 / 1641 exit codes as success

If the box has no internet, the prereq install fails with a clear
message and a "continue anyway?" prompt. README + installation docs
list the manual download URLs and `dotnet --list-runtimes` check;
troubleshooting has a section pointing at the same fix when the
service won't start after install.
justin force-pushed runtime-prereqs from 24b9e0aa80 to d9b2499690 2026-05-08 14:22:45 -04:00 Compare
justin merged commit 8512201ccc into main 2026-05-08 14:22:59 -04:00
justin deleted branch runtime-prereqs 2026-05-08 14:23:20 -04:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: justin/webhook-server#14