ASP.NET Core 3.0 - 如何附加 Visual Studio 调试器?

ASP.NET Core 3.0 - how to attach the Visual Studio debugger?

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

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

我 运行 每个项目通过拖放到命令行并执行 dotnet run.

然后我调试我的代码如下:

  1. 打开任务管理器并找到 dotnet 进程的进程 ID
  2. 2019 年 Visual StudioDebug -> Attach to Process

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

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

None 个进程显然与我项目的 .dll 个文件关联,其中 none 个允许我使用 Attach to Process 调试我的代码。

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

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

中成功附加到 this 进程

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

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

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

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