2013-04-24 49 views
1

我有一个C#控制台应用程序,我想在Linux上运行。我已经在MonoDevelop和我的机器上编译它(Ubuntu 12.04 LTS,64位),它运行良好。但是,在我租用的VPS(相同的操作系统,但没有X11),而应用程序启动没有问题,我在运行时遇到异常。单控制台应用程序:Winforms方法抛出异常Linux上没有X

导致异常的调用是类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还是有办法解决这个问题?我只是想在服务器上安装一些软件包?如果没有,我是否可以使用其他方法来实现文字测量?

+0

您可以运行虚拟X11服务器,这可能是最简单的解决方法,不会让您更改任何代码。 – 2013-04-27 07:44:29

+0

谢谢,我要去尝试,发现这个帖子在这里,推荐xvfb,http://stackoverflow.com/questions/1337232/what-dummy-x-server-should-i-use-with-openoffice-上debian的。将回报如何去 – themik81 2013-04-29 11:35:17

回答

0

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

相关问题