The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何將 Visual Studio 開發好的 .NET 部署至 Ubuntu ( Mono )

最近開始將一些用 .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 編碼,如下:

export LANG=zh_TW.UTF-8

至於連線工具建議使用 Unicode 支援度較佳的 PieTTY 連線程式,並且確定連上時的字元編碼設定是否切換到 Unicode ( 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 的階段,但似乎挺有趣的,有興趣的人可以玩玩看。

Mono Tools for Visual Studio Preview Released

相關連結