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 \
|
-c Release -r win-x64 --self-contained true \
|
||||||
/p:Version=$VERSION -o out/worker
|
/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:
|
env:
|
||||||
WORK: ${{ steps.ws.outputs.dir }}
|
WORK: ${{ steps.ws.outputs.dir }}
|
||||||
VERSION: ${{ steps.ver.outputs.version }}
|
VERSION: ${{ steps.ver.outputs.version }}
|
||||||
@@ -75,8 +75,11 @@ jobs:
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
export PATH="$DOTNET_ROOT:$PATH"
|
export PATH="$DOTNET_ROOT:$PATH"
|
||||||
cd "$WORK/src"
|
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 \
|
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 \
|
/p:Version=$VERSION /p:PublishSingleFile=true \
|
||||||
-o out/installer
|
-o out/installer
|
||||||
|
|
||||||
|
|||||||
@@ -21,14 +21,14 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(PublishSingleFile)' == 'true'">
|
<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>
|
<RuntimeIdentifier Condition="'$(RuntimeIdentifier)' == ''">win-x64</RuntimeIdentifier>
|
||||||
<PublishTrimmed>false</PublishTrimmed>
|
<PublishTrimmed>false</PublishTrimmed>
|
||||||
<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
|
<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
|
||||||
<IncludeAllContentForSelfExtract>true</IncludeAllContentForSelfExtract>
|
<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>
|
<EnableCompressionInSingleFile>false</EnableCompressionInSingleFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user