Windows10设备上的System.ExecutionEngineException

本文关键字:System ExecutionEngineException Windows10 | 更新日期: 2023-09-27 17:55:23

我正在开发一个Windows Phone 8.1应用程序。它在WP 8和WP 8.1设备上工作正常,但在装有Windows 10的设备上,它会抛出

ExecutionEngineException was unhandled. An unhandled exception of type 'System.ExecutionEngineException' occurred in Unknown Module.

在"调试"和"发布"的各个部分中,没有任何关于出错的数据。有些地方总是抛出异常,有些地方会不时抛出异常。下面的示例代码抛出异常 - 它基本上是一种在选项卡之间切换的方法,当点击按钮(带图像的网格)时,选项卡是 StackPanel:

private void Grid_Tapped(object sender, TappedRoutedEventArgs e)
{
    if(!isMapVisible)
    {
        hideSection();
        map_wrapper.Visibility = Windows.UI.Xaml.Visibility.Visible;
        map_button.Background = new SolidColorBrush(ColorHelper.FromArgb(0xFF, 40, 110, 73));
        map_icon.Source = new BitmapImage(new Uri(FileHelper.getIconPath("tu_2.png")));
        isMapVisible = true;
    }
}
private void hideSection()
{
    if(isMapVisible)
    {
        map_button.Background = new SolidColorBrush(ColorHelper.FromArgb(0xFF, 238, 238, 238));
        map_icon.Source = new BitmapImage(new Uri(FileHelper.getIconPath("tu.png")));
        isMapVisible = false;
        map_wrapper.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
    }
    else if(isPhotoVisible)
    {
        photo_button.Background = new SolidColorBrush(ColorHelper.FromArgb(0xFF, 238, 238, 238));
        photo_icon.Source = new BitmapImage(new Uri(FileHelper.getIconPath("photo_green.png")));
        isPhotoVisible = false;
        image_wrapper.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
    }
    else if(isListVisible)
    {
        list_button.Background = new SolidColorBrush(ColorHelper.FromArgb(0xFF, 238, 238, 238));
        list_icon.Source = new BitmapImage(new Uri(FileHelper.getIconPath("!2.png")));
        isListVisible = false;
        news_wrapper.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
    }
}

Windows10设备上的System.ExecutionEngineException

最后,

我设法修复了代码。但是,上面的代码中没有错误。我使用了一种叫做"安全导航"的东西。该示例显示在下面的代码中:

Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
    rootFrame.Navigate(typeof(MainPage));
});

我还使用运算符处理了所有异步方法await(我之前已经将其中一些方法留给了异步运行)。其中一项改进修复了错误。

我知道

这比原始帖子晚了两年多,但也许这会帮助人们寻找这个问题的答案。我一直从 Window 10 UWP 桌面应用程序中获得明显的随机 System.ExecutionEngineExceptions。几天后,我找到了我特定问题的答案。我使用了 MVVM 平台,而我的一个视图中的 x:UID 已损坏。

它应该是:<文本块x:Uid>

它是:<文本块>

该错误未标记为 XAML 问题,因为许多与此类似的语法错误,但是一旦我通过删除不需要的等号来更正该错误,异常就消失了。

希望这对其他人有所帮助。

克莱德

还想添加到上面。XAML 引擎不检查重复的 x:Uid,当我有两个同名的 x:Uid 时,我也遇到了此错误。使整个项目中的所有x:Uid都是独一无二的(不幸的是扩展了资源文件),但这解决了任何进一步的问题。希望 XAML 设计器检查重复的 x:Uid 就像它对 x:Name 所做的那样。

再次,希望它在未来对某人有所帮助。

干杯

克莱德

对于在使用 Xamarin 时遇到ExecutionEngineException的用户,请确保你拥有最新版本的 Microsoft.NETCore.UniversalWindowsPlatform

此问题已在 UWP 6.2.12 中修复:

修复了在 Xamarin 中加载 InAppUI 时的执行引擎异常。

https://github.com/microsoft/dotnet/blob/main/releases/UWP/net-native2.2/README.md