From 1c764dae3f283b1a3ef24f9d08d36b4648829b4e Mon Sep 17 00:00:00 2001 From: Mika Kuns Date: Wed, 15 Apr 2026 15:11:27 +0200 Subject: [PATCH] fix(installer): publish framework-dependent single-file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Self-contained single-file bundle was crashing at startup with 0xc0000005 in the apphost bootstrap (COR_E_EXECUTIONENGINE), because the Linux Gitea runner doesn't carry the Microsoft.WindowsDesktop.App runtime pack — the resulting bundle was missing WPF runtime bits. Disabling compression alone didn't resolve it. Switch to framework-dependent single-file: target machines need the .NET 8 Desktop Runtime (x64) installed but the bundle is ~2 MB instead of ~140 MB and starts reliably. Keep IncludeAllContentForSelfExtract=true so native deps (e_sqlite3) extract to a temp dir on first run. Co-Authored-By: Claude Opus 4.6 (1M context) --- .gitea/workflows/release.yml | 7 +++++-- src/ClaudeDo.Installer/ClaudeDo.Installer.csproj | 8 ++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 0c75e0d..74f3c4d 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -67,7 +67,7 @@ jobs: -c Release -r win-x64 --self-contained true \ /p:Version=$VERSION -o out/worker - - name: Publish ClaudeDo.Installer (win-x64, single-file) + - name: Publish ClaudeDo.Installer (win-x64, single-file, framework-dependent) env: WORK: ${{ steps.ws.outputs.dir }} VERSION: ${{ steps.ver.outputs.version }} @@ -75,8 +75,11 @@ jobs: set -euo pipefail export PATH="$DOTNET_ROOT:$PATH" cd "$WORK/src" + # Framework-dependent — WPF runtime pack isn't distributed on Linux SDK; + # the previous self-contained bundle crashed at startup (apphost AV). + # Target machines need .NET 8 Desktop Runtime (x64). dotnet publish src/ClaudeDo.Installer/ClaudeDo.Installer.csproj \ - -c Release -r win-x64 --self-contained true \ + -c Release -r win-x64 --self-contained false \ /p:Version=$VERSION /p:PublishSingleFile=true \ -o out/installer diff --git a/src/ClaudeDo.Installer/ClaudeDo.Installer.csproj b/src/ClaudeDo.Installer/ClaudeDo.Installer.csproj index e6be71e..4b968d5 100644 --- a/src/ClaudeDo.Installer/ClaudeDo.Installer.csproj +++ b/src/ClaudeDo.Installer/ClaudeDo.Installer.csproj @@ -21,14 +21,14 @@ - true + + false win-x64 false true true - false