VSCode版本:1.8.0
操作系统版本:Win10 x64
重现步骤:
在Program.cs中添加两行代码
string a = Console.ReadLine(); Console.WriteLine(一);
切换到VS代码调试窗口并开始调试,调试控制台窗口显示,并显示第一个" Hello,World。"输出,并在Console.ReadLine()行停止,在调试控制台中输入任何内容,然后按Enter键将显示错误消息"由于进程正在运行,因此无法执行此操作。"
问题是如果我打开一个新的cmd.exe并执行一个" dotnet运行"它工作正常,但在Visual Studio Code Debug Console中它无法正常工作。
答案 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()
并等待您的意见。