相关疑难解决方法(0)

在发布模式下显示Stack Trace for .NET程序集中的行号

有没有办法在发布模式下显示.NET程序集构建/部署的堆栈跟踪中的行?

更新:

我的应用程序分为三个类库项目和一个ASP.NET"网站"项目.我试图追踪的错误是在三个类库项目之一.我只为生成"未设置为对象实例的对象引用"错误的类库项目部署了pdb文件.

行号仍未显示在堆栈跟踪中.我是否需要为所有项目部署pdb文件以获取堆栈跟踪中的行号?

工作方案

为每个应用程序部署pdb文件修复了行号问题.

.net c# stack-trace line-numbers visual-studio

136
推荐指数
5
解决办法
8万
查看次数

.NET:在静态方法中确定"this"类的类型

在我可以使用的非静态方法中this.GetType(),它将返回Type.如何Type在静态方法中获得相同的内容?当然,我不能只写,typeof(ThisTypeName)因为ThisTypeName只在运行时才知道.谢谢!

.net c# static-methods types

92
推荐指数
4
解决办法
6万
查看次数

从C#打印堆栈跟踪信息

作为我们产品中某些错误处理的一部分,我们想要转储一些堆栈跟踪信息.但是,我们遇到许多用户只需截取错误消息对话框的屏幕截图,而不是向我们发送程序中可用的完整报告的副本,因此我想在此对话框中提供一些最小的堆栈跟踪信息.

我机器上的.NET堆栈跟踪如下所示:

at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize)
at System.IO.StreamReader..ctor(String path)
at LVKWinFormsSandbox.MainForm.button1_Click(Object sender, EventArgs e) in C:\Dev\VS.NET\Gatsoft\LVKWinFormsSandbox\MainForm.cs:line 36
Run Code Online (Sandbox Code Playgroud)

我有这个问题:

格式看起来是这样的:

at <class/method> [in file:line ##]
Run Code Online (Sandbox Code Playgroud)

但是,atin关键字,我认为如果它们运行,比如挪威的.NET运行时而不是我安装的英文版,它们将被本地化.

有没有办法让我以语言中立的方式分离这个堆栈跟踪,这样我才能显示那些有这个条目的文件和行号?

换句话说,我想从上面的文字中获得这些信息:

C:\Dev\VS.NET\Gatsoft\LVKWinFormsSandbox\MainForm.cs:line 36
Run Code Online (Sandbox Code Playgroud)

您提供的任何建议都会有所帮助.

c# error-handling parsing stack-trace

51
推荐指数
4
解决办法
5万
查看次数

如何在发布模式下为.net托管项目生成PDB?

我知道通过给编译器/ debug参数为.NET中的托管项目生成PDB .有没有办法在VS(2005)GUI中指定它?

到目前为止,我能够在发布模式下生成PDB的唯一方法是手动修改.csproj文件并添加:

<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
Run Code Online (Sandbox Code Playgroud)

在'发布'设置下:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
Run Code Online (Sandbox Code Playgroud)

另一件事:我在MSDN上从这里了解到DebugType标签的可能值是:

  • full
  • pdbonly
  • none

这些值如何影响编译器的行为?

.net msbuild debug-symbols release-mode

8
推荐指数
3
解决办法
1万
查看次数