最近開始將一些用 .NET 寫的程式部署到 Ubuntu Linux 上執行,大多都是一些小型的工具軟體 (Console Apps),部署的過程其實還算順利,大致分享幾個關鍵動作與開發技巧。
在 Ubuntu 8.04 LTS 安裝 .Net Framework 2.0 執行環境 ( Runtime )
由於 Ubuntu 8.04 LTS 已經內建 mono ( 含 .net 1.1 與 2.0 ),所以可以直接透過 apt-get 進行安裝:
apt-get install mono-2.0-devel
只要安裝 mono-2.0-devel 他就會自動幫你安裝所有相依的套件。如果你有安裝 X-Windows 視窗畫面的話,可以多安裝一個 libmono-winforms2.0-cil 套件,就可以在 X-Windows 上執行 WinForm 的程式了:
apt-get install mono-2.0-devel libmono-winforms2.0-cil
正確設定執行 .NET 應用程式的環境要求
如果你的 Console 應用程式中有出現中文字的話,由於 .NET 是一套完全以 Unicode 為主的程式架構,所以你務必要檢視系統是否可以顯示中文,而且連上 Linux 的連線工具可以正確顯示 Unicode 文字才行。
首先,必須設定 Linux 下的 LANG 環境變數,而且要指定為 UTF-8 編碼,如下:
至於連線工具建議使用 Unicode 支援度較佳的 PieTTY 連線程式,並且確定連上時的字元編碼設定是否切換到 Unicode ( UTF-8 ) 這一項。
執行 .NET 2.0 應用程式 ( Console Application )
所有要在 Linux 下執行 .NET 的程式,都必須透過 mono 程式啟動,例如:
mono ConsoleApplication1.exe
整合 Visual Studio 開發流程並自動部署至 Linux 主機
整體來說,我個人覺得在 Windows 利用 Visual Studio 開發一些工具,然後部署到 Linux 執行的過程還蠻順利的,像我就透過 PuTTY 官網所提供的 PSCP 指令列工具搭配 Visual Studio 中的 Post-build event 讓我在建置(Build)完成後自動將新的程式部署到公司內部的 Linux 測試主機,然後就可以立即進行測試。指令大致如下:
pscp.exe -i "G:\PuTTY Private Key.ppk" ParseMBOX.exe root@10.0.0.1:.
額外補充:
Linux 平台下類似 Visual Studio 的開發工具:MonoDevelop
目前推出到 MonoDevelop 2.0 版,可以完全在 Linux 環境下開發 .NET 2.0 應用程式 ( 支援 C# 3.0 ),包括 ASP.NET 與 WinForm。
在 Visual Studio 中安裝 Mono 外掛工具
現在 Mono 官方還提供支援 Mono 的 Visual Studio 外掛工具,可以在 Visual Studio 測試 Mono 的相容性 (MoMA),還支援遠端除錯,讓你可以在 Visual Studio 中直接測試 Linux 上執行的程式,在這裡有完整的圖說,該工具會自動編譯 –> 複製輸出到 Linux 主機 –> 並且自動啟動執行,不止 WinForm、WebForm (ASP.NET) 都可以,幾乎讓你離不開 Visual Studio 的視線。
雖然該工具目前處於 Preview 的階段,但似乎挺有趣的,有興趣的人可以玩玩看。
相關連結