WinUI项目调试时Microsoft.ui.xaml.dll抛0xc000027b异常求助
解决WinUI项目中Microsoft.ui.xaml.dll崩溃(0xc000027b/类未注册)问题
问题背景
项目配置:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>WinExe</OutputType> <TargetFramework>net8.0-windows10.0.22621.0</TargetFramework> <TargetPlatformMinVersion>10.0.22621.0</TargetPlatformMinVersion> <RootNamespace>X</RootNamespace> <Platforms>x86;x64;</Platforms> <RuntimeIdentifiers>win-x86;win-x64;</RuntimeIdentifiers> <DefaultLanguage>en</DefaultLanguage> <UseWinUI>true</UseWinUI> <EnableMsixTooling>true</EnableMsixTooling> <WindowsPackageType>MSIX</WindowsPackageType> <WindowsAppSDKSelfContained>true</WindowsAppSDKSelfContained> </PropertyGroup> ... <PackageReference Include="Microsoft.WindowsAppSDK" Version="1.5.240311000" /> </Project>
已安装对应Windows App SDK运行时及NuGet包,调试时触发崩溃,事件查看器错误:
Faulting application name: x.exe, version: 1.0.0.0, time stamp: 0x65a80000 Faulting module name: Microsoft.ui.xaml.dll, version: 3.1.5.0, time stamp: 0x7fd76c03 Exception code: 0xc000027b Fault offset: 0x0000000000404495 Faulting process id: 0x0x17F8 Faulting application start time: 0x0x1DA793E542F6342 Faulting application path: C:\Users\weath\source\repos\Weather.History\Weather.History.Windows\bin\x64\Debug\net8.0-windows10.0.22621.0\AppX\x.exe Faulting module path: C:\Users\weath\source\repos\Weather.History\Weather.History.Windows\bin\x64\Debug\net8.0-windows10.0.22621.0\AppX\Microsoft.ui.xaml.dll Report Id: 53b61667-909b-4964-b50a-a38a7723d309 Faulting package full name: Weather.History11_2.1.4.0_x64__qthhec8xancfe
WinDBG调试显示核心错误:
Microsoft.ui.xaml.dll!00007FFEE68AD96E: 80040154 - Class not registered (5f7c.18b4): Unknown exception - code c000027b (!!! second chance !!!)
解决方案
1. 修复自包含部署的运行时文件同步问题
自包含模式下,项目输出的AppX文件夹中可能存在不匹配的Windows App SDK组件:
- 右键项目选择「清理」
- 手动删除项目目录下的bin、obj文件夹
- 右键项目选择「重新生成」
- 验证AppX文件夹内的
Microsoft.ui.xaml.dll版本是否与安装的Windows App SDK 1.5.240311000完全一致(版本号应为3.1.5.0,时间戳匹配运行时安装的文件)
2. 重新注册WinUI XAML组件
以管理员身份打开PowerShell,执行以下命令:
# 注册项目输出中的组件(替换为你的实际路径) regsvr32 "C:\Users\weath\source\repos\Weather.History\Weather.History.Windows\bin\x64\Debug\net8.0-windows10.0.22621.0\AppX\Microsoft.ui.xaml.dll"
若注册失败,尝试注册系统级组件(需匹配已安装的运行时版本):
regsvr32 "C:\Program Files\WindowsApps\Microsoft.UI.Xaml.2.8_8.2312.15002.0_x64__8wekyb3d8bbwe\Microsoft.ui.xaml.dll"
3. 检查MSIX包的依赖声明
确保Package.appxmanifest中正确声明WinUI依赖:
- 打开Package.appxmanifest,切换到「依赖项」标签
- 确认存在
Microsoft.UI.Xaml依赖,版本号与Windows App SDK版本匹配(如1.5.*) - 若缺失,手动添加:
<Dependencies> <PackageDependency Name="Microsoft.UI.Xaml" MinVersion="3.1.5.0" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" /> </Dependencies>
4. 禁用自包含模式测试
暂时修改项目配置,将WindowsAppSDKSelfContained设为false:
<WindowsAppSDKSelfContained>false</WindowsAppSDKSelfContained>
重新生成并调试,若此模式下运行正常,说明自包含部署的组件打包存在问题,可尝试更新Visual Studio到最新版本,或重新安装Windows App SDK运行时。
5. 修复Visual Studio的WinUI工具链
- 打开Visual Studio Installer,选择「修改」,确保勾选「Windows App SDK C# Templates」和「Windows App SDK C++ Templates」
- 选择「更多」→「修复」,修复Visual Studio安装
内容的提问来源于stack exchange,提问作者Tommy
相关产品推荐
相关产品推荐

