The cwd-sync + temp-iss + /O fixes didn't move the needle - ISCC still
prints its full banner (Russell + Laan + Yackimoff) then dies with
"system cannot find the path specified." after 225ms with exit 2.
That rules out cwd, /D, OutputDir-resolution, and DLL-load failures.
Compile a truly minimal .iss (no #defines, no [Code], no [Files],
CreateAppDir=no, Uninstallable=no) right before our real one. If the
minimal compiles cleanly, the problem is in our .iss content and we
can bisect from there. If even the minimal fails, ISCC is broken
under the runner's SYSTEM context regardless of input - then the fix
is to stop building under SYSTEM (run the runner under a regular
user account, or skip ISCC altogether and ship the bare exe + scripts
as a zip).
installer/webhook-server.iss is an Inno Setup 6 script that:
- Installs to %ProgramFiles%\WebhookServer
- Creates Start Menu folder + GUI shortcut (and optional desktop icon)
- Runs install-service.ps1 post-install to register the Windows Service
- Runs uninstall-service.ps1 pre-uninstall to remove it
- Bundles the webhook-server icon for the installer / uninstaller
scripts/build-installer.ps1 is the local build helper: publishes both
projects, finds ISCC.exe (PATH or standard install path), compiles the
installer with the version pulled from Directory.Build.props, drops the
output in dist/.
.github/workflows/ci.yml runs build + test on every push/PR to main.
.github/workflows/release.yml triggers on v* tags (or manual dispatch),
runs tests, installs Inno Setup via choco, builds the installer, and
attaches the .exe to a GitHub Release. Pre-1.0 versions are flagged
prerelease automatically.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>