【发布时间】:2018-12-03 17:31:24
【问题描述】:
我在NetCore 上发现了一个奇怪的问题,当您在服务器上运行应用程序时没有添加行号,堆栈跟踪没有行号。我使用dotnet new console 创建了一个console 应用程序,添加了以下代码:
using System;
namespace bar2
{
class Program
{
static void Main(string[] args)
{
try
{
throw new InvalidOperationException("some error");
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
}
}
稍后我使用 dotnet run 运行应用程序
上面的代码将打印出来:
System.InvalidOperationException: some error
at bar2.Program.Main(String[] args)
注意在linux上执行没有行号(文件夹中有pdb文件)。
我该如何解决这个问题?对于生产应用程序真的很难复制错误,因为每次我不知道文件行号时,我只看到错误...
NetCore 信息 .NET 命令行工具 (2.1.200)
Product Information:
Version: 2.1.200
Commit SHA-1 hash: 2edba8d7f1
Runtime Environment:
OS Name: ubuntu
OS Version: 16.04
OS Platform: Linux
RID: ubuntu.16.04-x64
Base Path: /usr/share/dotnet/sdk/2.1.200/
Host (useful for support):
Version: 2.1.1
Commit: 6985b9f684
.NET Core SDKs installed:
2.1.200 [/usr/share/dotnet/sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.1 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.1 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.0.7 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.1 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
我还尝试了设置“仅 pdb”的调试和发布模式。
【问题讨论】:
-
您是处于发布模式还是调试模式?
-
2.1 没有复制。您使用的是哪个版本的 .NET Core?提醒一下,长期支持的版本是2.1。
-
即使使用
dotnet run -c Release也没有复制。 -
@HimBromBeere 我都试过了,在发布模式下我设置了“pdb only”但结果相同。 NetCore 版本:2.0,带控制台应用
-
@jidic 你试过什么?您使用的是哪个版本的 .NET Core?我无法在调试或发布模式下重现您所描述的内容。没有使用 Visual Studio 创建的项目或使用
dotnet new console创建的项目进行复制。