You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET MAUI Windows应用Release模式调用PopAsync返回页面时崩溃

MAUI Windows Release模式下PopAsync崩溃问题

应用在Android、iOS平台运行正常,Windows Debug模式也能正常工作,但Release模式下调用PopAsync返回上一页时崩溃,错误模块为Microsoft.ui.xaml.dll(版本3.1.5.0)。

事件查看器日志

Log Name:      Application
Source:        Application Error
Date:          09-01-2025 11.07.23 AM
Event ID:      1000
Task Category: Application Crashing Events
Level:         Error
Keywords:      
User:          Username
Computer:      TH-5CD316CY9K
Description:
Faulting application name: MyApp.MAUI.exe, version: 3.3.1.1, time stamp: 0x67110000
Faulting module name: Microsoft.ui.xaml.dll, version: 3.1.5.0, time stamp: 0x73620e9d
Exception code: 0xc000027b
Fault offset: 0x00000000004051c5
Faulting process id: 0x0x6FF4
Faulting application start time: 0x0x1DB6250DE80F48B
Faulting application path: C:\Program Files\WindowsApps\Myapp_3.3.1.1_x64__g35nme29jzpc6\Myapp.MAUI.exe
Faulting module path: C:\Program Files\WindowsApps\Myapp_3.3.1.1_x64__g35nme29jzpc6\Microsoft.ui.xaml.dll
Report Id: 60e8d78e-e2b2-4d12-b04e-45e239414dcc
Faulting package full name: Myapp_3.3.1.1_x64__g35nme29jzpc6
Faulting package-relative application ID: App
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Application Error" Guid="{a0e9b465-b939-57d7-b27d-95d8e925ff57}" />
    <EventID>1000</EventID>
    <Version>0</Version>
    <Level>2</Level>
    <Task>100</Task>
    <Opcode>0</Opcode>
    <Keywords>0x8000000000000000</Keywords>
    <TimeCreated SystemTime="2025-01-09T05:37:23.4669886Z" />
    <EventRecordID>12078</EventRecordID>
    <Correlation />
    <Execution ProcessID="12360" ThreadID="16696" />
    <Channel>Application</Channel>
    <Computer>TH-5CD316CY9K</Computer>
    <Security UserID="S-1-12-1-2066423280-1217765239-1122947254-2308196255" />
  </System>
  <EventData>
    <Data Name="AppName">Myapp.MAUI.exe</Data>
    <Data Name="AppVersion">3.3.1.1</Data>
    <Data Name="AppTimeStamp">67110000</Data>
    <Data Name="ModuleName">Microsoft.ui.xaml.dll</Data>
    <Data Name="ModuleVersion">3.1.5.0</Data>
    <Data Name="ModuleTimeStamp">73620e9d</Data>
    <Data Name="ExceptionCode">c000027b</Data>
    <Data Name="FaultingOffset">00000000004051c5</Data>
    <Data Name="ProcessId">0x6ff4</Data>
    <Data Name="ProcessCreationTime">0x1db6250de80f48b</Data>
    <Data Name="AppPath">C:\Program Files\WindowsApps\Myapp_3.3.1.1_x64__g35nme29jzpc6\Myapp.MAUI.exe</Data>
    <Data Name="ModulePath">C:\Program Files\WindowsApps\Myapp_3.3.1.1_x64__g35nme29jzpc6\Microsoft.ui.xaml.dll</Data>
    <Data Name="IntegratorReportId">60e8d78e-e2b2-4d12-b04e-45e239414dcc</Data>
    <Data Name="PackageFullName">Myapp_3.3.1.1_x64__g35nme29jzpc6</Data>
    <Data Name="PackageRelativeAppId">App</Data>
  </EventData>
</Event>

AppCenter日志

WinRT ExceptionHelpers.<ThrowExceptionForHR>g__Throw|38_0 (Int32 hr)
ABI.Microsoft.UI.Xaml.Controls IContentPresenterMethods.set_Content (IObjectReference _obj, Object value)
Microsoft.UI.Xaml.Controls ContentPresenter.set_Content (Object value)
Microsoft.Maui.Platform StackNavigationManager.OnNavigated (Object sender, NavigationEventArgs e)
WinRT._EventSource_global__Microsoft_UI_Xaml_Navigation_NavigatedEventHandler
EventState.<GetEventInvoke>b__1_0 (Object sender, NavigationEventArgs e)
ABI.Microsoft.UI.Xaml.Navigation
NavigatedEventHandler.Do_Abi_Invoke (IntPtr thisPtr, IntPtr sender, IntPtr e)
WinRT
ExceptionHelpers.<ThrowExceptionForHR>g__Throw|38_0 (Int32 hr)
ABI.Microsoft.UI.Xaml.Controls
IFrameMethods.GoBack (IObjectReference _obj, NavigationTransitionInfo transitionInfoOverride)
Microsoft.UI.Xaml.Controls
Frame.GoBack (NavigationTransitionInfo transitionInfoOverride)
Microsoft.Maui.Platform
StackNavigationManager.NavigateTo (NavigationRequest args)
Microsoft.Maui.Handlers
NavigationViewHandler.RequestNavigation (INavigationViewHandler arg1, IStackNavigation arg2, Object arg3)
Microsoft.Maui
CommandMapper.InvokeCore (String key, IElementHandler viewHandler, IElement virtualView, Object args)
Microsoft.Maui.Handlers
ElementHandler.Invoke (String command, Object args)
Microsoft.Maui.Controls.NavigationPage.Microsoft.Maui
IStackNavigation.RequestNavigation (NavigationRequest eventArgs)
Microsoft.Maui.Controls
NavigationPage.SendHandlerUpdateAsync (Boolean animated, Action processStackChanges, Action firePostNavigatingEvents, Action fireNavigatedEvents)
Microsoft.Maui.Controls.NavigationPage
MauiNavigationImpl.OnPopAsync (Boolean animated)
Microsoft.Maui.Controls
NavigationPage.PopAsync (Boolean animated)
iCareHealth.Portables.Services.AppNavigationService.<>c__DisplayClass13_0
<<GoBack>b__1>d.MoveNext ()
System.Threading.Tasks.Task
<>c.<ThrowAsync>b__128_0 (Object state)
Microsoft.UI.Dispatching.DispatcherQueueSynchronizationContext
<>c__DisplayClass2_0.<Post>b__0 ()
WinRT
ExceptionHelpers.<ThrowExceptionForHR>g__Throw|38_0 (Int32 hr)
ABI.Windows.ApplicationModel.Core
IUnhandledErrorMethods.Propagate (IObjectReference _obj)
Windows.ApplicationModel.Core
UnhandledError.Propagate ()
Microsoft.AppCenter.Utils
ApplicationLifecycleHelperWinUI.<ctor>b__0_3 (Object sender, UnhandledErrorDetectedEventArgs eventArgs)

解决建议

1. 排查页面资源释放问题

Release模式下代码优化更彻底,容易暴露资源未正确释放的问题:

  • 取消当前页面所有事件订阅,尤其是绑定到UI控件的异步回调;
  • 页面ViewModel实现IDisposable接口,在页面卸载时释放持有的资源;
  • 避免在页面中保留对已销毁对象的强引用。

2. 升级依赖版本

当前使用的WinUI 3版本(3.1.5.0)存在已知的导航相关bug,建议:

  • 将MAUI升级到最新稳定版(如8.0.x),同步更新Microsoft.WindowsAppSDK等依赖包;
  • 确保项目中WinUI版本与MAUI版本兼容,避免版本不匹配导致的异常。

3. 禁用导航动画

部分场景下,Release模式的导航动画会触发UI线程异常,可临时禁用动画测试:

await Navigation.PopAsync(animated: false);

4. 调整Release编译配置

  • 关闭Trim unused code选项,防止MAUI导航核心代码被误裁剪;
  • 暂时关闭Optimize code,排查是否是代码优化导致的问题;
  • 确认Windows目标RuntimeIdentifier设置正确,建议使用net8.0-windows10.0.19041.0及以上版本。

5. 捕获详细异常信息

添加全局异常捕获逻辑,获取更精准的错误详情:

// 捕获AppDomain未处理异常
AppDomain.CurrentDomain.UnhandledException += (sender, e) =>
{
    // 将异常信息写入本地日志文件
};

// 捕获WinUI未处理异常
Microsoft.UI.Xaml.Application.Current.UnhandledException += (sender, e) =>
{
    // 记录异常并标记为已处理
    e.Handled = true;
};

内容的提问来源于stack exchange,提问作者Devanathan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 02:24:51