相关疑难解决方法(0)

如何在没有pdb的情况下在堆栈跟踪中包含行号?

我们目前正在分发一个没有.pdb文件的WinForms应用程序,以节省客户端计算机上的空间和下载带宽.当我们得到堆栈跟踪时,我们得到方法名称但不是行号.有没有办法获取行号而不诉诸分发.pdb文件?

.net c# deployment debugging pdb-files

31
推荐指数
2
解决办法
2万
查看次数

Stacktrace信息保留原始源的路径

我正在使用C#.net进行应用程序开发.

要记录和调试异常,我使用stacktrace.

我在另一台机器上执行了我的应用程序,但是当发生错误时它指的是我的开发机器的路径.

Ex:   D:\Projects\xyz.CS line no :12 _Error_message_here.
Run Code Online (Sandbox Code Playgroud)

为什么即使我在另一台机器上运行应用程序,它也会跟踪我的开发机器路径上的路径?

.net c# stack-trace

13
推荐指数
2
解决办法
4843
查看次数

如何从日志消息中删除开发人员的机器路径?

当我发布 ASP.NET MVC Core 3.1 应用程序时,异常日志包含开发人员计算机的路径。

日志示例:

2021-04-27 16:36:47.1954 | |18f76390-4123opr9fjnfe832. | ERROR | Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware | An unhandled exception has occurred while executing the request. | System.Exception: TEST
   at ClassLibrary.Repositories.HomeRepo.GetSummary() in C:\Users\FLASTNAME\TFS\dotnet\APPNAME\.......:line 68
   at ClassLibrary.Services.HomeService.GetStatuses() in C:\Users\FLASTNAME\TFS\dotnet\APPNAME\.......:line 38
   at Project.Controllers.HomeController.GetSummary() in C:\Users\FLASTNAME\TFS\dotnet\APPNAME\.......\HomeController.cs:line 39
   at lambda_method(Closure , Object )
   at Microsoft.Extensions.Internal.ObjectMethodExecutorAwaitable.Awaiter.GetResult()
   ......
   ......
Run Code Online (Sandbox Code Playgroud)

行号和文件位置对于识别错误原因很有用,但路径包含开发人员的名称FLASTNAME,如果不存在的话我更希望如此。

我的研究最接近的是 .pdb 文件(1 , 2),一些建议更改构建设置中的调试信息:

在此输入图像描述

但是,我尝试了每个选项,但它仍然显示完整路径。我无法选择在另一台机器上构建项目,那么在这种情况下我该怎么办?

我知道我可能在这里误解了一些东西,但即使在Release配置中构建项目也不能解决我的问题。

编辑:

<PathMap>这是@Kirk Larkin 建议添加代码的结果

<PropertyGroup>
  <PathMap>$(MSBuildProjectDirectory)=ANOTHERPATH</PathMap>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

到项目的 csproj 文件:

2021-04-27 16:36:47.1954 | …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc build pdb-files asp.net-core

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