fix(installer): publish framework-dependent single-file
All checks were successful
Release / release (push) Successful in 27s
All checks were successful
Release / release (push) Successful in 27s
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) <noreply@anthropic.com>
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -21,14 +21,14 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(PublishSingleFile)' == 'true'">
|
||||
<SelfContained>true</SelfContained>
|
||||
<!-- Framework-dependent: the WPF runtime pack isn't distributed for cross-compile
|
||||
on Linux CI, which made self-contained bundles crash on startup with AV in the
|
||||
apphost. Target machines already have the .NET 8 Desktop Runtime. -->
|
||||
<SelfContained>false</SelfContained>
|
||||
<RuntimeIdentifier Condition="'$(RuntimeIdentifier)' == ''">win-x64</RuntimeIdentifier>
|
||||
<PublishTrimmed>false</PublishTrimmed>
|
||||
<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
|
||||
<IncludeAllContentForSelfExtract>true</IncludeAllContentForSelfExtract>
|
||||
<!-- Compression disabled: WPF + single-file + compression triggers AV in the
|
||||
bundle extractor (0xc0000005 / COR_E_EXECUTIONENGINE) on some machines.
|
||||
Trade ~30% exe size for reliable startup. -->
|
||||
<EnableCompressionInSingleFile>false</EnableCompressionInSingleFile>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user