【问题标题】:ASP.NET Core 3.0 - how to attach the Visual Studio debugger?ASP.NET Core 3.0 - 如何附加 Visual Studio 调试器?
【发布时间】:2020-03-16 01:27:05
【问题描述】:

我有两个 Asp.Net Core 项目 - 一个是 2.2 版。一个是 3.0 版。

每个项目都是在 Visual Studio 中创建的全新的空 MVC 项目。

我通过进入命令行并执行dotnet run 来运行每个项目。

然后我按如下方式调试我的代码:

  1. 打开任务管理器,找到dotnet进程的进程ID
  2. 在 Visual Studio 2019 中执行 Debug -> Attach to Process

对于 2.2 版本的项目,我可以在任务管理器中轻松识别正确的 dotnet 进程——它显示了指向我项目的 .dll 文件的 dotnet exec 命令:

但是 - 对于 3.0 项目,任务管理器中的 dotnet 进程如下所示:

没有一个进程与我的项目的.dll 文件明确关联,并且没有一个进程允许我使用附加到进程来调试我的代码。

所以我的问题是 - 当我使用 dotnet run 运行 Visual Studio 的调试器时,有没有办法将它附加到 Asp.Net Core 3.0 项目?

【问题讨论】:

  • 您可以创建一个带有配置的 launch.json 文件,以在 .Net 核心项目中启用调试,而不是附加调试器。

标签: asp.net-core visual-studio-debugging visual-studio-2019


【解决方案1】:

在将 ASP.NET Core 2.2 项目升级到 ASP.NET Core 3.0 后,我遇到了同样的问题。我使用了一个技巧来找出我应该在需要时附加的过程:

  • 使用调试 (F5) 运行
  • 附加到进程
  • 找到灰显的进程(已附加)。这是应该用于进一步处理附件的过程

在我的例子中,这个过程被称为{AssemblyName}.exe

旁注:您会发现 Reattach extension 对于快速重新附加(例如 Ctrl-R Ctrl-1)到以前的进程特别有用。

【讨论】:

  • 嘿,这是一个方便的扩展。
【解决方案2】:

事实证明,当使用 dotnet run 运行 Asp.Net Core 3.0 项目时,任务管理器中的条目与 2.2 不同 - 构建生成的 .exe 文件显示在任务管理器的详细信息中,并且我可以在 Visual Studio 中成功附加到 this 进程:

【讨论】:

  • 嗨,Simon,感谢您的分享,请将您的回复标记为答案,这将有助于其他社区成员更轻松地搜索此有用信息,这只是一个提醒 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-10
  • 1970-01-01
  • 2014-08-27
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
相关资源
最近更新 更多