C# 不在堆栈跟踪中显示生成计算机的文件路径

C# 不在堆栈跟踪中显示生成计算机的文件路径,c#,exception,stack-trace,debug-symbols,C#,Exception,Stack Trace,Debug Symbols,我目前正在开发一个C#应用程序,它有自己的日志记录。抛出异常时,异常会保存到一个列表中,用户可以通过列表视图查看该列表。 当用户单击列表视图中的异常时,异常的堆栈跟踪显示在文本框中。但是,即使在远程机器上执行程序,堆栈跟踪也会显示从编译应用程序的机器到原始源文件的文件路径 e、 g: 只显示没有文件夹的源文件会很好 我怎样才能改变这种行为 有没有本地解决方案?或者我必须简单地进行一些字符串操作吗?您可能在安装的应用程序中有.pdb文件。如果没有.pdb文件,则不应显示文件位置 看看 及 无法使用

我目前正在开发一个C#应用程序,它有自己的日志记录。抛出异常时,异常会保存到一个列表中,用户可以通过列表视图查看该列表。 当用户单击列表视图中的异常时,异常的堆栈跟踪显示在文本框中。但是,即使在远程机器上执行程序,堆栈跟踪也会显示从编译应用程序的机器到原始源文件的文件路径

e、 g:

只显示没有文件夹的源文件会很好

我怎样才能改变这种行为


有没有本地解决方案?或者我必须简单地进行一些字符串操作吗?

您可能在安装的应用程序中有.pdb文件。如果没有.pdb文件,则不应显示文件位置

看看

无法使用行获取堆栈跟踪 直接从应用程序中获取数字 除非你捆绑PDB


文件路径包含在“”文件(.pdb)中。这些文件是在编译期间创建的,这些文件中的路径与编译机器上的路径相同

您可以从安装中删除.pdb文件,但通过这种方式,堆栈跟踪将只比现在有趣一半,因为它不会告诉您发生错误的行。通常,您不会在附加了Pdb文件的生产环境中运行代码


如果您想保留“有趣的堆栈跟踪”,您可以考虑在调用“<代码>异常对象.toString())>代码> > /p>之后,对文件夹名称进行字符串替换。您的日志代码看起来是什么样子?只需用正则表达式来筛选路径。或者Path.GetFileName()。这个问题不是重复的,它询问如何不显示生成路径,另一个问题询问为什么在异常中存在生成路径。为什么不。。。在附带Pdb文件的生产环境中运行代码?为什么接受此答案?这个问题回答得很少。

at C:\Folder1\Folder2\Class1.cs:81
at C:\Folder1\Folder2\Class2.cs:65
at C:\Folder1\Folder1\Class3.cs:21