我们有一个使用 WinRT(和 XAML、C#)的 Windows 应用商店应用程序项目。问题是,当抛出一些异常并且我使用记录异常时Debug.WriteLine(ex);
,没有行号,所以我不知道异常到底在哪里抛出。当然,我在“项目属性”>“构建”>“高级”>“调试信息”中设置了“完整”符号的调试配置。
一开始我以为这一定是我们项目中的东西。然而,当我从微软下载一些示例并放入以下代码时,异常仍然没有行号。
try
{
throw new Exception("Test");
}
catch (Exception ex)
{
Debug.WriteLine(ex);
}
例如,如果我将上面的代码放入OnNavigatedTo
方法,我得到:
System.Exception: Test
at SDKTemplate.MainPage.OnNavigatedTo(NavigationEventArgs e)
那里没有行号...
在文章、书籍等中,没有提到不应该有行号的事实,但也许我遗漏了一些东西?跟VS版本有关系吗?我用的是VS2013。或者一些系统范围的设置?
发生的情况是 Visual Studio 未在执行应用程序的路径中包含 .pdb 文件(符号)。在我的机器上,可执行文件的路径如下所示:
C:\Users\msmall\Documents\Visual Studio 2013\Projects\DebugLineNUmbers\DebugLineNUmbers\bin\Debug\AppX
这就是 VS 打包可执行文件并将其部署到本地计算机上运行的地方。 AppX 文件夹内没有 .pdb 文件。你最终会得到这样的结果:
System.Exception: Test
at DebugLineNUmbers.MainPage.OnNavigatedTo(NavigationEventArgs e)
但是,您可以将 .pdb 从 Debug 文件夹(仅上一层)移动到 AppX 文件夹中,并最终得到行号:
System.Exception: Test
at DebugLineNUmbers.MainPage.OnNavigatedTo(NavigationEventArgs e) in
c:\Users\msmall\Documents\Visual Studio 2013
\Projects\DebugLineNUmbers\DebugLineNUmbers\MainPage.xaml.cs:line 36
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)