如何在 Linux 下使用 MonoDevelop 的项目中使用 Console.ReadLine()
Posted
技术标签:
【中文标题】如何在 Linux 下使用 MonoDevelop 的项目中使用 Console.ReadLine()【英文标题】:How to use Console.ReadLine() in a project using MonoDevelop under Linux 【发布时间】:2018-02-03 08:17:35 【问题描述】:我有以下示例项目,我在 OpenSuse 中使用 MonoDevelop。 我可以构建项目,但是当我执行它时,它没有显示任何可以输入字符串的控制台。我知道有人表示我们应该将项目选项设置为“在外部控制台上运行”。该选项已启用,但是当我在 MonoDevelop 下执行程序时没有出现控制台。我们是否必须单独打开控制台并附加到进程,还是有其他技巧?
using System;
namespace ConsoleReadLine
class MainClass
public static void Main (string[] args)
string s = Console.ReadLine ();
Console.WriteLine (s);
Console.ReadLine ();
【问题讨论】:
我知道该功能 (Run on External Console
) 在 MonoDevelop 的一些最新版本中被破坏(因此我第一次遇到它的 Visual Studio for Mac)。你运行的是什么版本?
=== MonoDevelop === 版本 5.9.6 安装 UUID:250a94e4-84df-4dde-9b60-d7604834eeba 运行时:Mono 5.8.0.108(tarball Fri Jan 19 21:02:58 UTC 2018) (64 位)GTK+ 2.24.31(Breeze 主题)=== 构建信息 === 构建信息不可用 === 操作系统 === Linux Linux linux-21ul 4.4.104-39-default #1 SMP Thu Jan 4 08:11:03 UTC 2018 (7db1912) x86_64 x86_64 x86_64 GNU/Linux
我使用的是旧版本 (4.0.12)。我刚刚创建了一个新解决方案并运行了您的代码。它为控制台 I/O 打开了一个新终端。如果不出意外,您可以通过键入 ./bin/Debug/readline.exe
(或类似名称)从单独的终端运行程序。
Mono 向我展示了一个使用与 5.9.6 不同的版本(使用 5.8.0.108)运行它的选项,当我运行它时,它也无法显示控制台。我今天第一次安装了 Mono。如果我通过单独的终端运行程序,我将无法通过逐行运行来调试更复杂的程序
@Nick_F 运行时不是问题(据我所知)。那是 MonoDevelop 的“旧”版本,试试最新的稳定版本 (7.3.2.12
)。
【参考方案1】:
目前(版本 7.8.4 (build 2)),这在 Linux 上仍然是一个问题。
要解决这个问题,您需要:
右键单击解决方案(而不是项目),然后选择“选项”
在“运行”中,选择“配置”下的“默认”,勾选“在外部控制台上运行”
点击“确定”,就可以了!
我不知道是否有任何方法可以在系统范围内(即所有解决方案)改变这种行为,但我有兴趣知道。
【讨论】:
以上是关于如何在 Linux 下使用 MonoDevelop 的项目中使用 Console.ReadLine()的主要内容,如果未能解决你的问题,请参考以下文章
MonoDevelop + NAudio + Ubuntu Linux 告诉我找不到 Winmm.dll?
关于 MonoDevelop on Linux 单步调试问题的解决