Mono跨平臺體驗

最近遇到一個特殊需求,客戶要求做一個運行在Linux上的軟件,並且要有軟件界面。考慮到不會GTK#,QT也不熟悉,所以想到還是用mono Windows Form(.net跨平臺項目)比較好,這裏記錄一下做法。

1.首先得準備一些東西:

  • 一臺Windows電腦
  • visual studio 2015 (其它版本也可以)
  • 一個虛擬機軟件VisualBox(其它虛擬機軟件也可以,這裏以VisualBox爲例)
  • 一個Linux系統鏡像(這裏以Ubuntu 16.04爲例)
2.準備好這些之後,安裝好VisualBox,新建Linux系統,加載Ubuntu鏡像,注意設置網絡連接爲【橋接網卡】,否則外機ping不同內機;

3.安裝過程中根據提示,選擇時區,語言等,等待Ubuntu安裝完成,安裝完成後會提示重啓,最後再安裝VisualBox擴展,以及共享粘貼板-雙向(方便從外機複製Linux命令進內機終端),記住還要重啓一次才生效;

4.接下來安裝mono, 去mono官網,會有不同操作系統安裝mono的方法:
  • Windows下最簡單,下載好之後,雙擊進行安裝即可;
  • Ubuntu下只要鍵入mono官網提示的命令即可:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/ubuntu xenial main" | sudo tee /etc/apt/sources.list.d/mono-official.list
sudo apt-get update

等待update完成(可能要等幾分鐘),執行安裝命令:
sudo apt-get install mono-devel

5.接下來打開visual studio,打開【工具】-【擴展和更新】,安裝Mono Tools (國內可能被牆,自己想辦法),安裝好之後重啓VS:


6.打開【工具】-【選項】-【Mono Tools】,填入mono安裝路徑:


7.新建一個傳統Windows Form項目,拖幾個控件,然後工具欄【Mono】-【XBuild Solution】,看看【輸出】窗口有沒有錯誤提示,因爲有些控件,mono目前是不支持的。點擊【Mono】-【Start Without Debugging】:


8.如果編譯沒有報錯,那表示程序暫時沒有問題,可以運行,但是運行之後有沒有問題,還得去Ubuntu上測試才知道;

9.在visualbox上設置【共享文件夾】,記住設置成“自動掛載”+“固定分配”,路徑指向剛剛編譯的debug文件夾。重啓Linux,就能在Linux的文件管理器看到了:


10.在Linux上運行剛剛生成的exe文件(記住要以root運行):
cd /media/sf_Debug/
mono TestMono.exe


11.一般只有界面,運行是沒有問題的,如果有後臺代碼,比如一些特殊功能,如日誌記錄,就要考慮linux下的文件路徑符是正斜槓而不是反斜槓,還有要考慮某些代碼mono支不支持,雖然mono提供了一些檢測工具,如MoMa,但是具體問題還是要具體分析,總的來說是一個細膩的工程;






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章