我开发了一个全球通用的UWP应用程序,但在Store应用程序或发布版本中遇到了一些问题,而在调试版本中一切正常。该应用程序似乎非常基础:它允许用户通过Web服务创建和同步表单。在应用程序启动时,会进行测试以查看用户是否已登录:如果没有,则应用程序导航到“登录”页面;否则,它会导航到包含表单列表的“主页”页面。然后用户可以通过“详细信息”页面编辑每个表单。在“调试”模式下,我没有遇到任何未捕获的异常,一切正常。最新版本的Store应用程序已经成功生成并验证,没有任何问题。但是,我的最后一次更改引发了应用程序崩溃,当用户从“详细信息”页面返回“主页”页面时。
我猜测这次更改主要是为了引发错误:我在“详情”视图中添加了一些代码,通过“OnNavigatedFrom()”清理资源。
为了解决这个问题,我想使用".Net Native工具链"在"发布"模式下构建应用程序。
"发布"模式:
在"发布"模式下,我已经检查好了选项"使用 .NET Native 工具链"和"优化代码"。
应用程序可以正确启动并正常导航到"登录"页面。但是,在用户连接后,应用程序尝试导航到"主页"页面: 我得到了2个异常,并且我无法做任何其他操作...
第一个异常发生一次,我可以"继续":
第二个异常每次都会发生,即使我尝试继续:
我尝试添加一些MessageDialog来查看错误发生的位置,但消息不会显示在构造函数中:所以我无法确定问题的来源...
“使用本机工具链的调试模式”
最后,我又尝试了一次“调试”模式,但使用了“使用.NET本机工具链编译”和“优化代码”的选项。
但是这样做很好,我无法重现在“发布”模式下遇到的错误...
我没有其他想法,也无法回答这些问题:
为什么商店版本和发布模式之间存在差异?
我该如何在发布模式下使用应用程序?是否可以进行“调试”?
我必须在发布模式下启动应用程序以修复商店版本遇到的错误...
问候,
我猜测这次更改主要是为了引发错误:我在“详情”视图中添加了一些代码,通过“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工具链"在"发布"模式下构建应用程序。
"发布"模式:
在"发布"模式下,我已经检查好了选项"使用 .NET Native 工具链"和"优化代码"。
![enter image description here](https://istack.dev59.com/RTa2t.webp)
第一个异常发生一次,我可以"继续":
![enter image description here](https://istack.dev59.com/zsKnT.webp)
![enter image description here](https://istack.dev59.com/fzwGY.webp)
“使用本机工具链的调试模式”
最后,我又尝试了一次“调试”模式,但使用了“使用.NET本机工具链编译”和“优化代码”的选项。
但是这样做很好,我无法重现在“发布”模式下遇到的错误...
我没有其他想法,也无法回答这些问题:
为什么商店版本和发布模式之间存在差异?
我该如何在发布模式下使用应用程序?是否可以进行“调试”?
我必须在发布模式下启动应用程序以修复商店版本遇到的错误...
问候,