详细的错误信息如下
System.DllNotFoundException:“Unable to load DLL 'Microsoft.ui.xaml.dll' or one of its dependencies: 找不到指定的模块。 (0x8007007E)”
大部分情况下的错误都在如以下代码的 XamlCheckProcessRequirements 里面
[global::System.Runtime.InteropServices.DllImport("Microsoft.ui.xaml.dll")]
[global::System.Runtime.InteropServices.DefaultDllImportSearchPaths(global::System.Runtime.InteropServices.DllImportSearchPath.SafeDirectories)]
private static extern void XamlCheckProcessRequirements();
对应的英文错误信息如下
Unable to load DLL 'Microsoft.ui.xaml.dll' or one of its dependencies: The specified module could not be found. (0x8007007E)
此问题是因为没有安装好 Windows App Runtime 环境,导致 WinUI 3 缺失环境而运行失败,或者是因为没有将 WinUI 3 使用自包含方式发布而找不到环境
对应以上原因就有两个修复方法:
方法一是给安装上环境,安装方法如下
进入到 https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads 下载页
下载安装 Windows App Runtime 安装包 WindowsAppRuntimeInstall.exe 文件修复此问题
方法二是构建为自包含方式,在 csproj 里面添加如下代码即可
<WindowsAppSDKSelfContained>true</WindowsAppSDKSelfContained>
详细请参考 WinUI 3 修复非打包应用运行提示缺少 Windows App Runtime 环境
此问题已经报告给官方,详细请看 https://github.com/microsoft/WindowsAppSDK/issues/2443
博客园博客只做备份,博客发布就不再更新,如果想看最新博客,请访问 https://blog.lindexi.com/
如图片看不见,请在浏览器开启不安全http内容兼容
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名[林德熙](https://www.cnblogs.com/lindexi)(包含链接:https://www.cnblogs.com/lindexi ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我[联系](mailto:[email protected])。