控制台应用程序上的缓冲区宽度 - 平台不支持异常



所以我正在尝试为我的终端/控制台应用程序同时使用 Console.BufferWidthConsole.BufferHeight 方法。我收到此错误:

Unhandled Exception: System.PlatformNotSupportedException: Operation is not supported on this platform.
   at System.ConsolePal.set_BufferHeight(Int32 value)
   at System.Console.set_BufferHeight(Int32 value)

这是否与我在Mac上编程有关,并且Mac无法支持这样的操作?还是有其他原因?

对我来说:

  • 这似乎是一个非常明确的错误消息;和
  • 您无法在 Mac 上分配给该值并不让我感到惊讶(我知道您不能在单声道下)。

奇怪的是,您报告了与BufferHeight相关的消息,而不是BufferWidth,但我猜您已经尝试设置这两个属性。

您可以发现引发 PlatformNotSupportedExceptions 的代码

  • 安装 nuget 包Microsoft.DotNet.Analyzers.Compatibility

    Install-Package Microsoft.DotNet.Analyzers.Compatibility -Version 0.2.12-alpha
    
  • 按照此处所述配置工具

  • 选择规则 PC001,然后选择将规则集严重性设置为错误

  • 生成项目时,与PlatformNotSupportedExceptions相关的任何问题都会在"错误"窗口中显示为错误

您只能像这样编写代码来执行 Windows 中的代码:

  if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
 {
    Console.BufferHeight = 9999 ;
  // ... More code stuff
 }

最新更新