Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试更改控制台前景色时,Mono应用程序失败,出现ArgumentNullException_C#_.net_Linux_Mono_Buildroot - Fatal编程技术网

C# 尝试更改控制台前景色时,Mono应用程序失败,出现ArgumentNullException

C# 尝试更改控制台前景色时,Mono应用程序失败,出现ArgumentNullException,c#,.net,linux,mono,buildroot,C#,.net,Linux,Mono,Buildroot,当我尝试启动此应用程序时: private static void Main(string[] args) { Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine("test"); } 在mono下,它会出现以下异常: Unhandled Exception: System.ArgumentNullException: Argument cannot be null. Parameter name: fo

当我尝试启动此应用程序时:

private static void Main(string[] args)
{
    Console.ForegroundColor = ConsoleColor.Cyan;
    Console.WriteLine("test");
}
在mono下,它会出现以下异常:

Unhandled Exception:
System.ArgumentNullException: Argument cannot be null.
Parameter name: format
  at System.ParameterizedStrings.Evaluate (System.String format, FormatParam[] args) [0x00000] in <filename unknown>:0
  at System.TermInfoDriver.ChangeColor (System.String format, ConsoleColor color) [0x00000] in <filename unknown>:0
  at System.TermInfoDriver.set_ForegroundColor (ConsoleColor value) [0x00000] in <filename unknown>:0
  at System.ConsoleDriver.set_ForegroundColor (ConsoleColor value) [0x00000] in <filename unknown>:0
  at System.Console.set_ForegroundColor (ConsoleColor value) [0x00000] in <filename unknown>:0
  at FudpLoader.Application.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.ArgumentNullException: Argument cannot be null.
Parameter name: format
  at System.ParameterizedStrings.Evaluate (System.String format, FormatParam[] args) [0x00000] in <filename unknown>:0
  at System.TermInfoDriver.ChangeColor (System.String format, ConsoleColor color) [0x00000] in <filename unknown>:0
  at System.TermInfoDriver.set_ForegroundColor (ConsoleColor value) [0x00000] in <filename unknown>:0
  at System.ConsoleDriver.set_ForegroundColor (ConsoleColor value) [0x00000] in <filename unknown>:0
  at System.Console.set_ForegroundColor (ConsoleColor value) [0x00000] in <filename unknown>:0
  at FudpLoader.Application.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0

在Linux中启动,使用BuildRoot构建并在ARM处理器上运行。若我并没有试图改变控制台的颜色,那个么应用程序运行良好;如果我在Linux虚拟机上启动它,彩色应用程序也可以正常工作。

如果使用mono源跟踪异常stacktrace,您可以看到mono使用它来获取当前终端的功能。设置前景色时,它会查询SetAForeground功能,失败时会发生错误。因此,terminfo告诉mono,当前终端不支持SetaForGround功能。

我需要设置环境变量TERM,terminfo开始正常工作。 就我而言,它是:

export TERM=xterm-color

谢谢你的提示!TermInfo失败,因为“TERM”环境变量未定义
export TERM=xterm-color