gpt4 book ai didi

winforms - 单控制台应用程序 : Winforms Method Throws Exception On Linux Without X

转载 作者:行者123 更新时间:2023-12-04 18:53:22 25 4
gpt4 key购买 nike

我有一个想在 Linux 上运行的 C# 控制台应用程序。我已经在 MonoDevelop 中编译了它,并且在我的机器(Ubuntu 12.04 LTS,64 位)上运行良好。但是,在我租用的 VPS 上(相同的操作系统但没有 X11),虽然应用程序启动没有问题,但我在运行时遇到异常。

导致异常的调用是 System.Windows.Forms.TextRenderer 类的 MeasureText 方法。如果您想知道此方法在控制台应用程序中的作用,它需要测量以某种字体呈现的文本长度,以计算其创建的 SVG 文件中文本元素的正确位置。异常消息和堆栈跟踪摘录如下:

An exception was thrown by the type initializer for System.Windows.Forms.XplatUI


at System.Windows.Forms.TextRenderer.MeasureTextInternal (IDeviceContext dc, System.String text, System.Drawing.Font font, Size proposedSize, TextFormatFlags flags, Boolean useMeasureString) [0x00000] in <filename unknown>:0
at System.Windows.Forms.TextRenderer.MeasureText (System.String text, System.Drawing.Font font) [0x00000] in <filename unknown>:0

我想我已经在服务器上正确安装了有问题的字体,至少当我调用 fc-list 时它会显示出来。那么我需要 X 还是有办法解决它?我只是错过了服务器上的一些软件包安装吗?如果做不到这一点,是否有替代方法可以用来实现文本测量?

最佳答案

我尝试了上面提出的建议,它奏效了。我安装了 xvfb,现在通过 xvfb-run 运行单声道。异常消失了,服务器上的内存使用量并没有增加太多。

关于winforms - 单控制台应用程序 : Winforms Method Throws Exception On Linux Without X,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16202759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com