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.
该文件规定如下:
默认情况下,将启动进程,并将其控制台输出(stdout/stderr)发送到VS Code Debugger Console.这对于从网络,文件等中获取输入的可执行文件非常有用. 但这对于想要从控制台读取的应用程序(例如:Console.ReadLine)不起作用.对于这些应用程序,请使用如下设置
我在这里找到了解决问题的方法.
来自链接文档的以下引用还指出将控制台属性从launch.json更改为" externalTerminal "或" integratedTerminal "将有所帮助.
当此设置为externalTerminal时,目标进程将在单独的终端中运行.
当此设置为integratedTerminal时,目标进程将在VS Code的集成终端内运行.单击编辑器下方选项卡组中的"终端"选项卡,以与您的应用程序进行交互.
| 归档时间: |
|
| 查看次数: |
2007 次 |
| 最近记录: |