From a4906d513090e4ee3c003402b138ccda640e9245 Mon Sep 17 00:00:00 2001 From: Dong Bin <14807942+rabbitism@users.noreply.github.com> Date: Mon, 17 Nov 2025 11:24:07 +0800 Subject: [PATCH] Fix wasm deployment issue (#827) * fix: update wasm-tools installation * fix: add TrimmerRootAssembly for WASM optimization * fix: update project to target .NET 10 and adjust deployment settings * fix: add TrimmerRootAssembly for Ursa.Demo to improve WASM optimization * fix: avoid Window based dialog crash on non-supported platforms. --- .github/workflows/deploy.yml | 8 ++++---- demo/Ursa.Demo.Browser/Ursa.Demo.Browser.csproj | 8 +++++++- demo/Ursa.Demo/ViewModels/ButtonGroupDemoViewModel.cs | 2 +- demo/Ursa.Demo/ViewModels/DialogDemoViewModel.cs | 10 ++++++++++ demo/Ursa.Demo/ViewModels/MessageBoxDemoViewModel.cs | 7 +++++++ 5 files changed, 29 insertions(+), 6 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index c7e210d..5f0c546 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -2,7 +2,7 @@ name: Deploy to GitHub Pages env: PROJECT_PATH: demo/Ursa.Demo.Browser/Ursa.Demo.Browser.csproj - OUTPUT_PATH: demo/Ursa.Demo.Browser/bin/Release/net8.0-browser/publish/wwwroot + OUTPUT_PATH: demo/Ursa.Demo.Browser/bin/Release/net10.0-browser/publish/wwwroot on: workflow_dispatch: @@ -13,10 +13,10 @@ jobs: - name: Checkout uses: actions/checkout@v4.1.1 - - name: Setup .NET 8 - uses: actions/setup-dotnet@v4 + - name: Setup .NET 10 + uses: actions/setup-dotnet@v5 with: - dotnet-version: 8.0.x + dotnet-version: 10.0.x - name: Install wasm-tools run: dotnet workload install wasm-tools diff --git a/demo/Ursa.Demo.Browser/Ursa.Demo.Browser.csproj b/demo/Ursa.Demo.Browser/Ursa.Demo.Browser.csproj index ca266d6..032e544 100644 --- a/demo/Ursa.Demo.Browser/Ursa.Demo.Browser.csproj +++ b/demo/Ursa.Demo.Browser/Ursa.Demo.Browser.csproj @@ -1,6 +1,6 @@  - net8.0-browser + net10.0-browser Exe true enable @@ -9,9 +9,15 @@ + + + + + + diff --git a/demo/Ursa.Demo/ViewModels/ButtonGroupDemoViewModel.cs b/demo/Ursa.Demo/ViewModels/ButtonGroupDemoViewModel.cs index 02f6ea1..f91f1ce 100644 --- a/demo/Ursa.Demo/ViewModels/ButtonGroupDemoViewModel.cs +++ b/demo/Ursa.Demo/ViewModels/ButtonGroupDemoViewModel.cs @@ -30,6 +30,6 @@ public class ButtonItem private async Task Invoke() { - await MessageBox.ShowAsync("Hello " + Name); + await MessageBox.ShowOverlayAsync("Hello " + Name); } } \ No newline at end of file diff --git a/demo/Ursa.Demo/ViewModels/DialogDemoViewModel.cs b/demo/Ursa.Demo/ViewModels/DialogDemoViewModel.cs index d4f2590..2d0538a 100644 --- a/demo/Ursa.Demo/ViewModels/DialogDemoViewModel.cs +++ b/demo/Ursa.Demo/ViewModels/DialogDemoViewModel.cs @@ -48,6 +48,11 @@ public partial class DefaultWindowDialogDemoViewModel: ObservableObject private async Task ShowDialog() { + if(OperatingSystem.IsBrowser() || OperatingSystem.IsAndroid() || OperatingSystem.IsIOS()) + { + await MessageBox.ShowOverlayAsync("Window dialogs are not supported on this platform. Please use overlay dialogs instead."); + return; + } var options = new DialogOptions() { Title = Title, @@ -92,6 +97,11 @@ public partial class CustomWindowDialogDemoViewModel: ObservableObject private async Task ShowDialog() { + if(OperatingSystem.IsBrowser() || OperatingSystem.IsAndroid() || OperatingSystem.IsIOS()) + { + await MessageBox.ShowOverlayAsync("Window dialogs are not supported on this platform. Please use overlay dialogs instead."); + return; + } var options = new DialogOptions() { Title = Title, diff --git a/demo/Ursa.Demo/ViewModels/MessageBoxDemoViewModel.cs b/demo/Ursa.Demo/ViewModels/MessageBoxDemoViewModel.cs index a835796..610e566 100644 --- a/demo/Ursa.Demo/ViewModels/MessageBoxDemoViewModel.cs +++ b/demo/Ursa.Demo/ViewModels/MessageBoxDemoViewModel.cs @@ -2,6 +2,7 @@ using System.Collections.ObjectModel; using System.Threading.Tasks; using System.Windows.Input; +using Avalonia.Markup.Xaml.MarkupExtensions; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using Ursa.Controls; @@ -126,6 +127,12 @@ public class MessageBoxDemoViewModel: ObservableObject } else { + if (OperatingSystem.IsBrowser() || OperatingSystem.IsAndroid() || OperatingSystem.IsIOS()) + { + await MessageBox.ShowOverlayAsync("Only overlay message box is supported on this platform.", + "Ursa MessageBox", button: MessageBoxButton.OK, icon: MessageBoxIcon.Error); + return; + } Result = await MessageBox.ShowAsync(_message, _title, icon: SelectedIcon, button:button); } }