我对这个dotnet核心调试设置有什么错?

时间:2018-10-22 16:44:28

标签: .net asp.net-core .net-core

我对dotnet core还是很陌生,我刚开始一个新项目,该项目有一个用dotnet core编写的现有应用程序。有一个用dotnet core编写的现有控制台应用程序。我可以在VS中以调试模式运行该应用程序,并且Main()方法中第一行代码的断点会命中。我需要遵循文档中的一些说明,该说明指出该应用程序可以从Powershell控制台执行为“ dotnet run--a”。我在控制台应用程序中尝试了“调试>附加到进程> dotnet.exe”,但是当我通过Powershell控制台执行“ dotnet run--a”命令时,Main()方法中第一行代码处的断点没有受到打击。知道我在做什么错吗?

1 个答案:

答案 0 :(得分:1)

在Visual Studio中使用“附加到进程”功能时,会将调试器附加到已经运行的进程。由于您首先使用dotnet run开始了该过程,因此很可能在连接调试器时,您的应用程序的开始已经运行。

这使得“附加到进程”不适用于调试目的,因为在应用程序启动期间您需要调试器在身边。相反,它对于已经运行了一段时间的应用程序以及执行某些操作会触发您要调试的行为的应用程序更有用。例如,对于Web应用程序,您可以仅启动Web应用程序然后将其附加,并且仅通过向Web应用程序发出请求,即可找到要调试的代码。

如果要在启动过程中调试应用程序,并且不能直接在Visual Studio中运行该应用程序,则可以使用自定义调试目标。

为此,请打开项目属性,然后转到“调试”选项卡。在此处,选择“可执行文件”作为“启动”类型,然后指定启动应用程序所需的设置:

Running dotnet.exe as the executable debug target

然后,当您按F5键开始调试应用程序时,将启动该可执行文件而不是项目。这样,即使在其Main方法中,您也应该能够正确调试应用程序。