如何在发布模式下调试UWP应用程序+“。Net Native tool chain”

时间:2017-02-13 16:23:39

标签: c# xaml uwp native release

我开发了一个全球性良好的 UWP应用,但我遇到了商店应用或发布版本的一些问题,而所有在调试构建...

中工作正常

该应用程序似乎非常基本:ts允许用户通过Web服务创建和同步表单。在应用程序启动时,会进行测试以查看用户是否已登录:如果不是这样,应用程序会导航到“登录”页面,否则导航到“ 主页“页面,其中包含表单列表。然后,用户可以通过“详细信息”页面编辑每个表单。

“调试”模式:

当我在“调试”模式下构建应用程序时,我没有遇到任何未捕获的异常且一切正常

商店应用

商店应用的最新版本已成功生成并经过验证,没有任何问题。但是,当用户从“详细信息”页面返回到“主页”时,我的上一次更改会引发应用崩溃页。

我怀疑此更改会引发错误:我在“详细信息”视图中添加了一些代码,以通过“ OnNavigatedFrom ()”清除资源:

protected override void OnNavigatedFrom(NavigationEventArgs e)
{
    ViewModel = this.DataContext as DetailsViewModel;
    if (!ViewModel.ToChildNavigate)
    {
        // Dispose resources
        this.Resources.Clear();
        this.Loaded -= DetailsPage_Loaded;
        ViewModel = null;
    }
    base.OnNavigatedFrom(e);            
}

要解决此问题,我想在“发布”模式下使用“.Net Native tool chain”构建应用程序。

“发布”模式:

在“发布”模式下,我已经检查了“使用.NET Native工具链编译”和“优化代码”选项。 enter image description here

应用程序正确启动并正确导航“登录”页面。但在用户连接后,该应用会尝试导航到“主页”页面:我得到 2个例外,我无法做任何其他事情......

第一个例外发生一次,我可以“继续”: enter image description here

即使我尝试继续,每次都会出现第二个异常: enter image description here

我尝试添加一些 MessageDialog 来查看错误发生的位置,但是消息没有显示在构造函数中:所以我无法确定问题的根源...... < / p> 带有“原生工具链”的

“调试”模式

最后,我尝试再次以“调试”模式构建应用程序,但选项“使用.NET Native工具链编译”和“优化代码

但是像这样,它工作正常,我无法重现“发布”模式中遇到的错误......

我没有其他想法,我无法回答这些问题:

  • 为什么商店版本和发布模式之间存在差异?
  • 如何在发布模式下使用该应用?是否有可能“调试”它?
  • 我必须在发布模式下启动应用程序以修复遇到的商店版本错误...

此致

2 个答案:

答案 0 :(得分:3)

默认情况下

发布配置优化代码会丢失一些用于调试的工件。因此,尝试调试发布配置可能会导致一些问题。

  

请务必注意,默认情况下,发布配置是完全优化的代码(例如,code inlining将在许多地方应用)。这些优化将对调试体验产生重大影响,包括不可预测的步进和断点行为(由于代码内联)以及由于内存优化而无法检查大多数变量。

因此,要在“发布”模式下调试UWP应用程序,我们可以创建自定义配置并为该配置启用.NET Native工具链。确保不优化代码。

有关详细信息,请参阅Debugging .NET Native Windows Universal Apps

答案 1 :(得分:1)

前一段时间我遇到了同样的问题。经过长时间的尝试和错误,我能够在发布模式下使用.net本机工具链进行调试,并在另一台PC上进行远程调试(在我的情况下,它是一个表面)。

我使用Visual Studio 2017并在远程计算机上使用了2017年的远程调试工具。

希望这有帮助。

问候。

相关问题