2013-04-24 52 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。異常已經消失,服務器上的內存使用量並沒有太多增加。

相關問題