无法运行目标.NET 8的WinUI 3应用问题求助
解决WinUI 3项目升级到.NET 8后
Microsoft.ui.xaml.dll加载失败问题 问题背景
用官方模板创建的WinUI 3项目,在目标.NET 6环境下可正常运行;但升级目标框架到.NET 8后,即便启用UseRidGraph解决了构建阶段的RID修剪问题,启动时仍抛出System.DllNotFoundException,提示无法加载Microsoft.ui.xaml.dll或其依赖项。
解决方案
以下是经过验证的修复步骤:
对齐WinUI 3相关NuGet包版本
- 确保项目中
Microsoft.WindowsAppSDK和Microsoft.UI.Xaml包使用适配.NET 8的最新稳定版本(需为1.5.x及以上系列,该版本专门适配.NET 8) - 卸载旧版本包后重新安装对应版本,避免跨框架版本的依赖冲突
- 确保项目中
完善项目文件配置
打开项目的.csproj文件,补充/调整以下配置:<PropertyGroup> <TargetFramework>net8.0-windows10.0.19041.0</TargetFramework> <WindowsPackageType>MSIX</WindowsPackageType> <UseRidGraph>true</UseRidGraph> <Platforms>x64</Platforms> <!-- 避免使用AnyCPU,明确指定运行平台 --> <WindowsTargetPlatformVersion>10.0.19041.0</WindowsTargetPlatformVersion> <!-- 最低要求19041版本 --> </PropertyGroup>清理重建项目
- 删除项目目录下的
bin和obj文件夹,彻底清除旧构建产物 - 执行
dotnet nuget locals all --clear命令清理NuGet缓存 - 重新生成解决方案,确保所有依赖项正确复制到输出目录
- 删除项目目录下的
检查运行时环境
- 确认本地已安装与NuGet包版本匹配的Windows App Runtime:在系统设置的「应用和功能」中查看是否有对应版本的"Windows App Runtime"条目
- 若缺失,安装对应版本的Windows App Runtime运行时包
说明
UseRidGraph仅解决了构建阶段的RID图修剪问题,而运行时的Microsoft.ui.xaml.dll加载失败通常由依赖版本不匹配、项目配置不全或运行时环境缺失导致,上述步骤覆盖了这些核心问题点。
内容的提问来源于stack exchange,提问作者Seth Ficke
相关产品推荐
相关产品推荐

