我开发了一个 UWP应用,它使用了很多 NuGet包( MvvmLight,SQLite,... )和其他资源( Syncfusion控件)。
我遇到了商店应用程序的错误,该应用程序已经发布用于测试,当我在" 调试&#中构建应用程序时,该错误不存在34;模式。
所以,我已经尝试调试" 发布"模式,使用选中的选项" 使用.NET Native工具链编译"和" 优化代码"。构建成功结束,但我在应用程序的主页面上遇到Syncfusion控件( SfDataGrid )的异常。我想使用断点来了解会发生什么,但是当我在"发布"中构建应用时,它们会被停用。模式。
如果我在" 调试"中构建应用程序模式,选中相同的选项(" 使用.NET Native工具链编译"" 优化代码"),我没有遇到与Syncfusion控件相同的错误,并且定义好的断点得到了很好的保护。
所以我不知道如何解决我的问题:
您有任何解释吗?我怎样才能调试我的应用程序"发布"模式?
[编辑1]:在进一步调查后添加一些细节
我的应用基于" 模板"像Template10,名为 Nentang 。项目的结构是相同的,它们共享很大一部分引用或NuGets包。 但是,如果我比较"空白"的构建结果。 Nentang和我的解决方案,有一些我不理解的差异:
=>只有" ntdll.dll "和" KernelBase.dll "链接到本地目录中的pdb文件:" C:\ Users \ myname \ AppData \ Local \ Temp \ SymbolCache "
=>所有一半的模块都链接到" 项目"中的相同文件。目录:" C:\ Projects \ Samples ... \ Nentang.UWP \ bin \ x64 \ Release \ AppX \ Nentang.UWP.pdb "
=&GT;另一个四分之一的模块链接到&#34; 系统&#34;的相同文件目录:&#34; C:\ Program Files(x86)\ Microsoft SDKs \ Windows Kits \ 10 \ ExtensionSDKs \ Microsoft.NET.Native.Framework.1.3 \ 1.3 \ x64 \ ret \ Native \ SharedLibrary.pdb < / EM>&#34;
=&GT;其他模块没有链接到符号文件:&#34; ntdll.dll &#34;和&#34; KernelBase.dll &#34;
如何恢复&#34;符号文件&#34;我的项目?
我还评论了一个&#34;奇怪的&#34;我的解决方案的属性中的参数,即不存在的是Nentang属性:
有这个参数:&#34; f:\ dd \ ndp \ fxcore \ CoreRT \ src \ System.Private.CoreLib \ src \ System \ Runtime \ ExceptionServices \ ExceptionDispatchInfo.cs &#34;
这是什么意思?它可以解释我的问题吗?
答案 0 :(得分:2)
调试优化代码总是一个挑战 - 使用.NETNative更是如此。以下是您可以尝试的一些事项: