#osxchat blog

2007/01/19

用Mono在OS X上寫C# GUI程式

作者: whiteg

如果不幸需要在OS X平台上撰寫C#/.NET圖形介面程式的話,Mono Framework大概是唯一的選擇,以下是我測試過認為最簡單的步驟。

必安裝
X11:檢查你的Utilities目錄下有沒有X11,沒有的話要從OS X安裝光碟裝。
X11 SDK、Xcode:從蘋果開發者網站下載Xcode套件。如果系統上沒有安裝X11的話,安裝Xcode時是不會裝X11 SDK的,所以一定要先裝X11。
Mono Framework。

基本上,這三者都裝好就可以了,但是這樣就祇能從命令列編譯程式,方法請參考Cocoa Sharp網站提供的tutorial

另一個方法則是安裝CSharpPlug for Xcode,然後直接在Xcode環境下撰寫與編譯,CSharpPlug相當新,而且作者寫的教學很詳盡,照著做就行了。要提醒的是,如果用到System.Drawing與System.Windows.Forms元件的話,要手動在Target Info視窗Build選項內的Reference Assemblies欄位輸入這兩個元件:如果用到其他Windows GUI元件也是比照辦理。

執行
開X11進xterm,從命令列執行編譯出來的執行檔(.exe),指令是 mono /path/to/file.exe。雖然Mono提供macpack把編譯出來的程式包成Mac bundle,但是我的執行結果是跑不起來,直接從Xcode執行也會出現X server設定錯誤的訊息。

如果執行時看到"Gtk not found (missing LD_LIBRARY_PATH to libgtk-x11-2.0.so.0?), using built-in colorscheme"的訊息,可以忽略不管。我也沒有裝libgtk,但是程式照樣可以跑。Mono計畫成員之一Miguel de Icaza在Mono-osx mailing list上有回覆此問題,基本上這是個移除掉比較好的警告。也就是說,不用安裝Gtk沒關係。

為了讓Mono可以使用Mac Auqa GUI,Mono團隊也有開發cocoa#,但是我稍微測了一下不是很理想,因為雖然using cocoa,可是一些component data type的mapping沒有很好,所以把C#程式丟進去編不起來。

寫寫小程式測試GUI的話,這樣是勉強可用的,祇是要忍受醜醜的圖形介面。

0 篇留言:

張貼留言

逆向鍊結:

建立連結

? 回前頁