WinUI3 应用程序抛出异常 - 我错过了什么?

WinUI3 App Throws Exception - What Have I Missed?

我最近升级了 Visual Studio 2019 以安装 Project Reunion 模板,这样我就可以 运行 WinUI3 应用程序了。我遵循了这个 guide. I believe I installed all the workloads and components from this list 但我可能错过了一些东西。我安装了模板,当我尝试创建新应用时它们会出现。

这里是我的 Visual Studio 安装的详细信息。

Microsoft Visual Studio Professional 2019

Version 16.11.3

VisualStudio.16.Release/16.11.3+31702.278

Microsoft .NET Framework

Version 4.8.04084

当我尝试 运行 应用程序时,我收到此错误消息:

System.Reflection.TargetInvocationException HResult=0x80131604 Message=Exception has been thrown by the target of an invocation. Source=System.Private.CoreLib StackTrace: at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean wrapExceptions, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& hasNoDefaultCtor) at System.RuntimeType.CreateInstanceDefaultCtorSlow(Boolean publicOnly, Boolean wrapExceptions, Boolean fillCache) at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, Boolean wrapExceptions) at System.Activator.CreateInstanceT at WinRT.WeakLazy`1.get_Value() at Microsoft.UI.Xaml.Application._IApplicationStatics.get_Instance() at Microsoft.UI.Xaml.Application.Start(ApplicationInitializationCallback callback) at App9.Program.Main(String[] args) in C:\Users\chris\source\repos\App9\App9\App9\obj\x64\Debug\net5.0-windows10.0.19041.0\App.g.i.cs:line 26

This exception was originally thrown at this call stack: [External Code]

Inner Exception 1: COMException: Class not registered (0x80040154 (REGDB_E_CLASSNOTREG))

已安装的工作负载:

指南说要安装 C++ (v142) Universal Windows Platform tools。我在安装程序中看到了这个:

确保您已在您的 PC 上启用开发者模式(Windows 设置 > 更新和安全 > 对于开发者 > 开发者模式 > 开启)。以及扩展名:Project Reunion,请确保您已安装。

那么应该是系统或其他问题。

对于Windows系统

1).尝试使用 SFC tool 修复丢失或损坏的系统文件。

2).检查Windows更新是否有任何错误记录,并使用Windows Troubleshooter修复它们。

3).尝试更新 Windows.

其他

1). Clear NuGet cache.

2).还原 NuGet 包:右键单击解决方案 > 还原 NuGet 包。

3). Repair Visual Studio 2019.

4).删除 solution/project 文件夹中的 .vsbinobj 文件夹,然后重建解决方案并 运行 它。

5).暂时禁用防病毒软件并重新启动计算机,然后重试。

6).将配置更改为 x86 并再次 运行。

我在 Visual Studio.

中不小心将错误的项目设置为启动项目时看到了这种类型的异常被抛出

WinUI 应用目前有两个项目:主应用项目和打包项目(生成 MSIX)。调试WinUI应用,需要将打包项目设置为启动项目。

展望未来,该团队正在努力将两者合并以用于最常见的场景。更复杂的场景可能还是需要打包工程。您可以使用以下任一 Visual Studio 扩展来尝试单个项目: