无法从vscode中的.net-core控制台应用程序读取输入

Oli*_*n04 7 c# .net-core visual-studio-code ubuntu-17.10

我一直在尝试让dotnet新的控制台示例项目(对于vscode)在Ubuntu 17.10中工作.

我可以运行默认程序:

using System;

namespace dotnet_console
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello world!");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我改变它以读取输入时,它变得非常糟糕......

using System;

namespace dotnet_console
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Name: "); // 1
            var name = Console.ReadLine(); // 2
            Console.WriteLine("Hello {0}!", name); // 3
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

程序构建,但不会打印Name:.但是,如果我在第1行,第2行和第3行放置断点,我可以看到程序运行所有这些,但没有打印.那是我停止调试.然后它打印

名称:

程序'[16322] dotnet-console.dll'已退出,代码为0(0x0).

这里发生了什么?我猜它是一个vscode的东西,因为它从终端使用时运行正常dotnet run.

Tob*_*eel 9

文件规定如下:

默认情况下,将启动进程,并将其控制台输出(stdout/stderr)发送到VS Code Debugger Console.这对于从网络,文件等中获取输入的可执行文件非常有用. 但这对于想要从控制台读取的应用程序(例如:Console.ReadLine)不起作用.对于这些应用程序,请使用如下设置

我在这里找到了解决问题的方法.

来自链接文档的以下引用还指出将控制台属性从launch.json更改为" externalTerminal "或" integratedTerminal "将有所帮助.

当此设置为externalTerminal时,目标进程将在单独的终端中运行.

当此设置为integratedTerminal时,目标进程将在VS Code的集成终端内运行.单击编辑器下方选项卡组中的"终端"选项卡,以与您的应用程序进行交互.

launch.json的位置