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

Windows 10 UWP App crash at start (Faulting module name: Windows.UI.Xaml.dll)

我有一个侧载 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 version 1903 build 18362 上一切正常,但现在我有 Windows 10 version 20H2 build 19042.1237 但它不起作用。

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

现在我试过了:

但还是一样的问题...

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

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

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

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

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

<UseAppLocalCoreFramework>true</UseAppLocalCoreFramework>

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

<Target Name="ResolvePackageDependenciesForBuild" />