【问题标题】:what am I doing wrong with this dotnet core debug setup?这个 dotnet 核心调试设置我做错了什么?
【发布时间】:2018-10-22 16:44:28
【问题描述】:
我对 dotnet core 还很陌生,我刚开始一个新项目,其中有一个用 dotnet core 编写的现有应用程序。有一个用 dotnet core 编写的现有控制台应用程序。我可以在调试模式下在 VS 中运行应用程序,并且 Main() 方法中第一行代码的断点被命中。我需要遵循文档中的一些说明,说明应用程序应该可以从 powershell 控制台执行为“dotnet run -- -a”。我在控制台应用程序中尝试了“调试 > 附加到进程 > dotnet.exe”,但是当我通过 powershell 控制台执行“dotnet run -- -a”命令时,Main() 方法中第一行代码的断点不会被击中。知道我在这里做错了什么吗?
【问题讨论】:
标签:
.net
asp.net-core
.net-core
【解决方案1】:
在 Visual Studio 中使用“附加到进程”功能时,会将调试器附加到已运行的进程。由于您首先使用dotnet run 启动进程,因此很可能在附加调试器时,您的应用程序的开头已经运行。
这使得“附加到进程”不太适合在应用程序启动期间需要调试器的调试目的。相反,它对于已经可以运行一段时间并且执行某些操作会触发您想要调试的行为的应用程序更有用。例如,对于 Web 应用程序,您可以只启动 Web 应用程序,然后附加到它,并且只有通过向 Web 应用程序发出请求,您才能访问要调试的代码。
如果您想在应用程序启动期间对其进行调试,并且您不能直接从 Visual Studio 中运行该应用程序,那么您可以使用自定义调试目标。
为此,请打开项目属性并转到“调试”选项卡。在那里,选择“Executable”作为“Launch”类型,然后指定启动应用程序所需的设置:
然后,当您按 F5 开始调试应用程序时,将启动该可执行文件而不是项目。这样,即使在 Main 方法中,您也应该能够正确调试您的应用程序。