2017-02-13 34 views
3

我已经开发了一个UWP应用的作品在全球范围很好,但我遇到一些问题商店应用程序,或与发布构建,而所有工作正常调试构建...如何调试在Release模式的UWP应用+“净本地工具链”

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

“调试”模式:

当我打造“调试”模式的应用程序,我不会遇到没有钓到任何异常,一切工作正常

的商店应用:

的商店应用的最新版本已成功生成,并没有任何问题验证。但是,当用户从“详细信息”页面回到“主页”页面时,我的最后一项更改导致应用程序的一个崩溃。

我怀疑尤其是这变化引发错误:我已经通过“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原生工具链”在“发布”模式下构建应用程序。

“释放” 模式:

在 “发布” 的模式,我已签好了选项 “编译.NET本地工具链” 和 “优化代码”。 enter image description here

该应用程序启动正确,并导航罚款“登录”页面。但在用户连接后,该应用程序尝试导航到“主页”页面:我得到2例外,而且我什么也做不了......

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

我试着补充一些: enter image description here

第二个例外各即使我尝试继续时有发生MessageDialog上看到错误的发生,但在consctructors没有显示消息:所以我不能确定问题的根源...

“d ebug本地工具链“与模式‘’

最后,我试图建立的应用程序‘调试’再次模式,但与选项‘编译.NET本地工具链’和” 优化代码“。

但就是这样,它工作正常,我不能重现“释放”模式中遇到的错误...

我没有其他想法,我不能anwser这些问题:

  • 为什么Store版本和发布模式之间存在差异?
  • 我如何才能在发布模式下使用该应用?是否有可能“调试”它?
  • 我要推出的发行模式还是传统的存储版本遇到的bug应用程序...

问候,

回答

3

发布配置默认优化代码它失去了一些用于调试的工件。因此,尝试调试版本配置会导致一些问题。

It is important to note that the Release configuration is by default fully optimized code (e.g. code inlining will be applied in many places). These optimizations will have a significant impact on the debugging experience including unpredictable stepping and breakpoint behavior (due to code inlining) and the inability to inspect most variables due to memory optimizations.

所以调试在“释放”模式UWP应用程序,我们可以创建自定义配置并启用该配置的.NET本地工具链。确保不要优化代码。请参阅Debugging .NET Native Windows Universal Apps

+0

谢谢@Jay Zut:这不适合我。我在链接中添加了一个新的配置:'Release','编译.NET Native工具链','取消选中优化代码'。但是断点永远不可用:“断点不会被打到,没有符号被加载到这个文档中”。你可以看到我的其他测试[这里](http:// stackoverflow。COM /问题/ 42256423 /视觉工作室-2015-I-着调试和使用的断点,在释放模式) –

1

前段时间我有同样的问题。经过很长时间的尝试和错误,我可以在发布模式下使用.net原生工具链在另一台PC上进行远程调试(在我的情况下,它是一个表面)。

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

希望这有助于。

问候。

相关问题