Debug Console窗口在调试期间无法接受Console.ReadLine()输入

时间:2016-12-17 04:40:29

标签: visual-studio-code

VSCode版本:1.8.0

操作系统版本:Win10 x64

重现步骤:

  1. 使用" dotnet new"
  2. 创建一个新的.net核心cli应用
  3. 使用VS代码
  4. 打开文件夹
  5. 在Program.cs中添加两行代码

    string a = Console.ReadLine(); Console.WriteLine(一);

  6. 切换到VS代码调试窗口并开始调试,调试控制台窗口显示,并显示第一个" Hello,World。"输出,并在Console.ReadLine()行停止,在调试控制台中输入任何内容,然后按Enter键将显示错误消息"由于进程正在运行,因此无法执行此操作。"

  7. 问题是如果我打开一个新的cmd.exe并执行一个" dotnet运行"它工作正常,但在Visual Studio Code Debug Console中它无法正常工作。

2 个答案:

答案 0 :(得分:18)

要在调试时读取输入,您可以使用console

中配置中的launch.json属性
{
    "version": "0.2.0",
    "configurations": [{
            "name": ".NET Core Launch (console)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            "program": "${workspaceRoot}/bin/Debug/netcoreapp2.0/Hashing.dll",
            "args": [],
            "cwd": "${workspaceRoot}",
            "console": "externalTerminal",
            "stopAtEntry": false,
            "internalConsoleOptions": "openOnSessionStart"
        },
        {
            "name": ".NET Core Attach",
            "type": "coreclr",
            "request": "attach",
            "processId": "${command:pickProcess}"
        }
    ]
}

您可以使用"externalTerminal""integratedTerminal""internalConsole"似乎无效。

我使用integratedTerminal设置,因为终端在VSCode本身内部。您现在可以使用Console.ReadLine();

读取输入

答案 1 :(得分:-3)

我是c#-visual studio调试器的新手...

尝试在

之前设置断点
Console.Readline()

通过单步执行代码F10(而不是F11)来调试它。

它应该停在

Console.Readline()

并等待您的意见。