为 Release 编译的 UWP 中的 MissingTemplateException

MissingTemplateException in UWP compiled for Release

我遇到了一个很奇怪的问题。

我们编写了一个 Windows Phone 8.1 应用程序,并将其升级到 UWP。该应用程序的调试版本运行良好,但是,当我 运行 发布时,出现此错误:

Internal.Runtime.TypeLoader.TypeBuilder+MissingTemplateException: Exception of type '{0}' was thrown., Internal.Runtime.TypeLoader.TypeBuilder+MissingTemplateException. For more information, visit http://go.microsoft.com/fwlink/?LinkId=623485

尝试打开特定的 ViewModel 时(使用 MvvmCross)。它只发生在这个 ViewModel 上,尽管它看起来并不特别。

请注意,我是在启用 .NetNative 的情况下编译它的。如果我禁用它,它可以正常工作,但没有它我无法将应用程序发布到商店。

如有任何帮助,我们将不胜感激。

这是 .NET Native 中的运行时异常之一。您很可能可以通过向 Default.rd.xml 文件中添加一些内容来解决此问题。

为了正确诊断这一点,我建议为项目的 DEBUG 配置启用 .NET Native 编译(项目属性 > BUILD > 启用 .Net Native 复选框)。然后,将调试器设置为在第一次出现异常时停止。 如果您可以移动到 Update 1,消息会好一点。

深入挖掘之后,我很想知道它最终会变成什么样子。遇到这种类型的错误是非常罕见的,所以很高兴知道我们可以改进的地方。随时欢迎您通过 dotnetnative@microsoft.com.

向我们发送具体反馈

看来问题是有问题的 ViewModel 有一个返回任务的 Init 方法:

public async Task Init(...)

通过将其更改为 void 来修复:

public async void Init(...)

不太清楚为什么,但它有效...