2013-04-23 112 views
0

我有一個我寫的c#程序。我想在CentOS 6的Mono上運行它。我需要採取哪些步驟來編譯它?我讀了一些使用xbuild的步驟,這些步驟我無法工作,使用gmcs的一些步驟等等。現在沒有任何工作。C#VS2010程序編譯+在Linux上運行MONO

一個簡單的和點的指導將是很好的。我通過Mono Analyzer運行它,它沒有給Mono帶來任何錯誤,所以它應該是好的。

回答

0

那麼只要它沒有GUI(意味着它只是一個控制檯應用程序),或者該GUI是一個簡單的Windows窗體或GTK#,你就不必特別編譯它。 Mono將會在控制檯上運行一個常規的C#程序。 Windows Forms有一些奇怪的問題,但從未完全完成,但通常您應該能夠使用VS 2010進行編譯,將dll和可執行文件複製到您要運行的系統上,然後運行'mono myprogram.exe' 。我們用這種方式運行了幾個較老的程序。

+0

謝謝你,但現在我一直在<文件名未知>獲得 在LKCamelot.io.IOThread.run()[0x00000]:0 at 中的LKCamelot.io.IOThread.run()[0x00000]:0 有沒有辦法診斷它? – user1992522 2013-04-23 02:11:03

+0

我想我可能需要在單聲道下編譯程序 – user1992522 2013-04-23 02:53:59

+0

你不需要。 Mono是一個開源的.Net運行時。問題出在你的代碼上,或者你正在使用一些Mono不支持的庫。 LKCamelot是你的項目嗎?我找不到任何關於此的信息。你正在運行多線程? – 2013-04-23 03:36:52

1

下單運行.NET程序所有你需要做的是.exe文件與所有依賴的DLL複製到單機器上並運行應用程序時出現

mono myprogram.exe 

如果這不工作,與您的代碼的東西不適用於mono/Linux。

正如你在評論中提到的,你得到了一些IO錯誤,這可能是因爲你試圖連接到COM1或類似的東西。 COM在Linux中不存在,因爲我確信其他東西也不存在(我是一個非常初學Linux的人)。

也許你應該在你的代碼的某些地方嘗試Console.WriteLine()。這是一個很好的方式來「調試」沒有調試器^^

我會評論這與其他答案,以及不幸的是,我不能因爲我不允許評論與聲譽< = 50,所以請不要向下投我的答案,我只是想幫助:)

相關問題