gpt4 book ai didi

visual-studio-code - 调试控制台窗口在调试期间无法接受 Console.ReadLine() 输入

转载 作者:行者123 更新时间:2023-12-03 07:36:08 27 4
gpt4 key购买 nike

VSCode 版本:1.8.0

操作系统版本:Win10 x64

重现步骤:

  • 使用“dotnet new”创建一个新的 .net core cli 应用
  • 使用 VS 代码打开文件夹
  • 在 Program.cs 中添加两行代码

    字符串 a = Console.ReadLine();
    Console.WriteLine(a);
  • 切换到 VS code 调试窗口并开始调试,Debug Console 窗口显示,并显示第一个“Hello, World”。输出,并在 Console.ReadLine() 行停止,在调试控制台中输入任何内容并按 Enter 将给出“无法执行此操作,因为进程正在运行”的错误消息。

  • 问题是在调试期间如何以及在何处为 Console.ReadLine() 输入文本以接受,如果我打开一个新的 cmd.exe 并执行“dotnet run”,它可以正常工作,但在 Visual Studio Code 调试控制台中它不起作用。

    最佳答案

    要在调试时读取输入,您可以使用 console您的配置中的属性 launch.json

    {
    "version": "0.2.0",
    "configurations": [
    {
    "name": ".NET Core Launch (console)",
    "type": "coreclr",
    "request": "launch",
    "program": "${workspaceFolder}/bin/Debug/net5.0/your-project-name.dll",
    "args": [],
    "cwd": "${workspaceFolder}",
    "stopAtEntry": false,
    "console": "integratedTerminal"
    }
    ]
    }
    您可以使用 "externalTerminal""integratedTerminal" . "internalConsole"似乎没有工作。
    我使用 integratedTerminal设置,因为终端在 VSCode 内部。您现在可以使用 Console.ReadLine(); 读取输入
    注意:还有, internalConsole不起作用,这是设计使然。这是因为 internalConsole使用调试控制台选项卡显示 Console.WriteLine 的输出。由于调试控制台中的输入框用于在当前堆栈上运行表达式,因此没有地方传递将进入 Console.ReadLine 的输入。这就是你必须使用类似 integratedTerminal 的原因。 .
    下面的截图表明 VSCode 团队知道这一点——
    console option with value internal console will not be able to read ser input

    关于visual-studio-code - 调试控制台窗口在调试期间无法接受 Console.ReadLine() 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41195432/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com