Windows 10 UWP 应用程序在启动时崩溃(错误模块名称:Windows.UI.Xaml.dll)

Posted

技术标签:

【中文标题】Windows 10 UWP 应用程序在启动时崩溃(错误模块名称:Windows.UI.Xaml.dll)【英文标题】:Windows 10 UWP App crash at start (Faulting module name: Windows.UI.Xaml.dll) 【发布时间】:2021-11-27 06:47:24 【问题描述】:

我有一个侧载 AppXBundle UWP 应用程序,但我需要从 UWP 调用另一个应用程序,所以我有 Windows 应用程序打包项目,我的 UWP 应用程序在哪里设置为入口点。一切运行良好,但应用程序运行一段时间后没有更改,因此我们尝试在新的 Windows 版本上安装此应用程序,现在启动后出现此错误:

Faulting application name: SampleApp.UWP.exe, Version: 1.0.0.0, Timestamp: 0x601d0acc
Faulting module name: Windows.UI.Xaml.dll, version: 10.0.19041.1151, timestamp: 0x4a600fea
Exception code: 0xc000027b
Fault offset: 0x008350e1
Faulting process id: 0x32ac
Faulting application start time: 0x01d7bb437797a43a
Faulting application path: C:\Users\user\source\repos\SampleApp\src\SampleApp.Package\bin\x86\Debug\AppX\SampleApp.UWP.exe
Faulting module path: C:\Windows\System32\Windows.UI.Xaml.dll
Report Id: d3fe4cda-8453-44a7-9584-a4e75a4b625b
Faulting package full name: 32ccd31a-20e9-4379-92c7-3cb29f6d9364_1.0.0.0_x86__m1eq83gekd84y
Faulting package-relative application ID: App

我尝试部署或安装仅侧载 UWP 应用项目并且它可以工作,但是在部署或安装包项目时它在启动后崩溃。我认为在 Windows 10 版本 1903 build 18362 上一切正常,但现在我有 Windows 10 版本 20H2 build 19042.1237,但它不起作用。

已设置 Windows 应用程序打包项目和 UWP 应用程序目标(当它工作时):

目标版本:Windows 10 版本 1903 build 18362 最低版本:Windows 10 Fall Creators Update build 16299

现在我尝试了:

目标版本:Windows 10 版本 2004 build 19041 最低版本:Windows 10 版本 1803 build 17134

但还是同样的问题……

当我在配置中创建应用程序包时,我只有架构 x86 Debug(x96)。

我有用于重现此问题的示例项目HERE。当部署或发布 -> 在 SampeApp.Package 项目中创建应用程序包时,它在启动后崩溃,但当我仅部署或发布 SampleApp.UWP 项目时它可以工作。

【问题讨论】:

请不要在问题中编辑解决方案公告。接受(即单击旁边的“勾选”)现有答案之一,如果有的话。如果现有答案尚未涵盖您的解决方案,您还可以创建自己的答案,甚至接受它。比较***.com/help/self-answer 【参考方案1】:

我通过在 .csproj PropertyGroups 中添加 UseAppLocalCoreFramework 找到了解决方案 HERE。

<UseAppLocalCoreFramework>true</UseAppLocalCoreFramework>

或将 ResolvePackageDependenciesForBuild 添加到 .wapproj(打包项目文件)的末尾。

<Target Name="ResolvePackageDependenciesForBuild" />

【讨论】:

【参考方案2】:

检查示例后,我发现您打包应用的方式与我们推荐的方式大不相同。将桌面应用添加为对 UWP 应用的引用并不是一个好方法。即使您注册了runfulltrust 功能,您也没有启动核心应用程序。

我建议您查看@Stefan Wick 的博客 - UWP with Desktop Extension Part 1,2,3。您可以在浏览器中搜索它们。这些教程展示了如何使用 Windows 应用程序打包项目将桌面应用程序与 UWP 应用程序打包在一起。然后 UWP 可以与桌面应用程序进行通信以执行您想要的操作。

【讨论】:

感谢您的回答,但这不是我的问题。我在生产中使用 Windows 应用程序打包项目的 UWP 应用程序可能需要两年时间,而且效果很好。我完全按照 Stefan Wick 的博客做了。但它在新的 Windows 版本中停止了工作,所以我制作了示例应用程序来重现我的问题。示例项目中的 UWP 应用设置为 Windows 应用程序打包项目中的入口点。我没有 FullTrustApp 示例,因为它在启动入口点应用程序时崩溃。示例中的核心项目只是 UWP 应用的后端,因此它不是 FullTrustApp。 在示例项目中,我只制作了 UWP 应用程序和 Windows 应用程序打包,并将 UWP 应用程序设置为入口点,并且在打包启动入口点应用程序时崩溃。 现在我尝试下载 Stefan Wick 的示例并且它可以工作。所以下一步我尝试添加 UWP Blank App 并将其设置为包中的入口点,而不是 SampleApp.UWP 项目,它可以工作。所以在我的 SampleApp.UWP 中存在一些问题,它使用 MvvmCross 并使用 MvxScaffolding 搭建。我提交更新的项目。 如果这个问题只发生在 MvxScaffolding 构建的 UWP 项目中,我建议你考虑在 MvxScaffolding 的 github 上报告这个问题。 我找到了解决办法。

以上是关于Windows 10 UWP 应用程序在启动时崩溃(错误模块名称:Windows.UI.Xaml.dll)的主要内容,如果未能解决你的问题,请参考以下文章

通过 Windows 10 uwp 上的代码重新启动

UWP App 在发布模式下崩溃(故障模块:Windows.UI.Xaml.dll)

自动启动 Windows 10 UWP 应用

设置UWP程序自启动(Automate launching Windows 10 UWP apps)

如何确保 UWP 应用在启动时始终全屏显示?

Windows 10 崩溃查询