我们有一个使用WinRT(和XAML,C#)的Windows应用商店项目。问题是,当抛出一些异常并且我使用Debug.WriteLine(ex);
记录异常时,没有行号,所以我不知道,实际上抛出的异常在哪里。我当然有DEBUG配置,在Project Properties>中设置了“完整”符号。构建>高级>调试信息。
起初我认为它必须是我们项目中的一部分。 HOwever,当我从microsoft下载一些样本并放入以下代码时,异常仍然没有行号。
try
{
throw new Exception("Test");
}
catch (Exception ex)
{
Debug.WriteLine(ex);
}
如果我将上面的代码放到OnNavigatedTo
方法中,我得到:
System.Exception: Test
at SDKTemplate.MainPage.OnNavigatedTo(NavigationEventArgs e)
那里没有行号......
在文章,书籍等中没有提到这样的事实,即应该没有行号,但也许我错过了什么?它可以与VS版本相关吗?我正在使用VS2013。或者一些系统范围的设置?
答案 0 :(得分:4)
发生的事情是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
答案 1 :(得分:1)
也许这篇文章可以提供帮助:Line numbers
答案 2 :(得分:1)
我无法添加评论,所以这里是一个新的答案,它会增加被接受的答案。
导航至:
Project-> [Project Name] Properties ...-> Build Events-> post-build event命令行:
添加以下行以将pdb文件复制到AppX目录:
xcopy /y "$(TargetDir)$(TargetName).pdb" "$(TargetDir)\AppX"