如何在 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()的主要内容,如果未能解决你的问题,请参考以下文章

无法在嵌入式Linux上构建MonoDevelop

如何强制MonoDevelop的建设使用替代单安装

MonoDevelop + NAudio + Ubuntu Linux 告诉我找不到 Winmm.dll?

关于 MonoDevelop on Linux 单步调试问题的解决

如何在 Ubuntu 上的 MonoDevelop 中使用 System.Windows.Forms?

Ubuntu10.10下开发环境Monodevelop的方向键问题