我在dotnetcorapp2.1中构建了一个控制台应用程序。它在Windows上运行很好。
当试图在Ubuntu上运行时,它会引发一个异常错误:
System.PlatformNotSupportedException:此平台不支持操作。at System.ConsolePal.set_BufferHeight(Int32值)
这是因为这一行:
Console.BufferHeight = Int16.MaxValue - 1;这个文档没有提到我为Console.BufferHeight考虑的限制
Console.BufferHeight (和BufferWidth)在Ubuntu上的局限性是什么?
发布于 2019-05-11 04:05:50
这个答案的所有功劳都在@danmosemsft
Unix不支持成员Console.BufferHeight。docs没有在控制台方法/属性上声明Unix特定的行为。
文档ConsolePal中的类ConsolePal.Unix.cs还包括其他NotSupported成员。
创建一个新的文档以在System.Console中显示PlatformNotSupportedExceptions
我修改了代码并将PlatformNotSupportedException单独捕获,并且应用程序在Ubuntu上运行,没有任何问题。
try
{
//.... do your stuff here
}
catch (PlatformNotSupportedException )
{
//log PlatformNotSupportedException
//noop
}
catch (exception ex)
{
//handle exception
}编辑
发现引发PlatformNotSupportedExceptions:的代码的
Microsoft.DotNet.Analyzers.Compatibility
安装-Package Microsoft.DotNet.Analyzers.Compatibility -Version 0.2.12-alphahttps://stackoverflow.com/questions/56069014
复制相似问题