diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ec25806..25821f2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -184,6 +184,7 @@ jobs: '## Requirements' '' '- **Windows 10/11 (x64)**' + '- **Windows App SDK 2.4** runtime' '- **.NET 10 Desktop Runtime** — https://dotnet.microsoft.com/download/dotnet/10.0' '' '## Notes' diff --git a/CHANGELOG.md b/CHANGELOG.md index 58259cb..c156b77 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ All notable changes to Reentry are documented here. The format follows ## [Unreleased] +- Launch on Windows 11 25H2: use the installed WASDK 2.4 runtime instead of the self-contained CoreMessagingXP payload (0xC0000602). Give the tray icon a generated glyph so ForceCreate has an IconSource. + ## [0.1.0-alpha1] - 2026-08-20 First scaffold — a Windows startup / session-restore monitor. diff --git a/README.md b/README.md index 6a9f49d..06cc234 100644 --- a/README.md +++ b/README.md @@ -62,8 +62,7 @@ pwsh ./publish.ps1 -SelfContained # bundles the .NET runtime (portable, larger) → `publish/Reentry.exe` -The Windows App SDK runtime is bundled (`WindowsAppSDKSelfContained=true`); the -app is unpackaged (`WindowsPackageType=None`). +The app is unpackaged (`WindowsPackageType=None`) and uses the installed Windows App SDK 2.4 runtime (`WindowsAppSDKSelfContained=false`). The self-contained 2.4 CoreMessagingXP payload fail-fasts on Windows 11 25H2. --- diff --git a/publish.ps1 b/publish.ps1 index 4c9b28c..988eef0 100644 --- a/publish.ps1 +++ b/publish.ps1 @@ -1,6 +1,6 @@ # Publishes Reentry as a framework-dependent Windows app into .\publish\. # Requires the .NET 10 Desktop Runtime on the target machine. -# The Windows App SDK runtime is bundled (WindowsAppSDKSelfContained=true). +# Requires the Windows App SDK 2.4 runtime (WindowsAppSDKSelfContained=false; the self-contained 2.4 CoreMessagingXP payload fail-fasts on Windows 11 25H2). # # Usage: pwsh ./publish.ps1 (framework-dependent .NET, small) # pwsh ./publish.ps1 -SelfContained (bundles the .NET runtime, large but portable) diff --git a/src/Reentry.App/Reentry.App.csproj b/src/Reentry.App/Reentry.App.csproj index a06691f..b38354c 100644 --- a/src/Reentry.App/Reentry.App.csproj +++ b/src/Reentry.App/Reentry.App.csproj @@ -13,7 +13,10 @@ true false None - true + + false true false app.manifest @@ -38,7 +41,6 @@ all - @@ -50,4 +52,4 @@ - + diff --git a/src/Reentry.App/Services/TrayIconHost.cs b/src/Reentry.App/Services/TrayIconHost.cs index b0ba7da..53e921b 100644 --- a/src/Reentry.App/Services/TrayIconHost.cs +++ b/src/Reentry.App/Services/TrayIconHost.cs @@ -19,18 +19,26 @@ public TrayIconHost(Action showHud, Action showSettings, Action exit) public void Show() { - var menu = new MenuFlyout(); - menu.Items.Add(Item("Show progress", _showHud)); - menu.Items.Add(Item("Settings", _showSettings)); - menu.Items.Add(new MenuFlyoutSeparator()); - menu.Items.Add(Item("Exit", _exit)); + try + { + var menu = new MenuFlyout(); + menu.Items.Add(Item("Show progress", _showHud)); + menu.Items.Add(Item("Settings", _showSettings)); + menu.Items.Add(new MenuFlyoutSeparator()); + menu.Items.Add(Item("Exit", _exit)); - _icon = new TaskbarIcon + _icon = new TaskbarIcon + { + ToolTipText = "Reentry", + ContextFlyout = menu, + IconSource = new GeneratedIconSource { Text = "R" }, + }; + _icon.ForceCreate(); + } + catch (Exception ex) { - ToolTipText = "Reentry", - ContextFlyout = menu, - }; - _icon.ForceCreate(); + System.Diagnostics.Debug.WriteLine(ex); + } } private static MenuFlyoutItem Item(string text, Action action) @@ -41,4 +49,4 @@ private static MenuFlyoutItem Item(string text, Action action) } public void Dispose() => _icon?.Dispose(); -} +}