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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 23:54:54