讓.NET應用程序在linux上運行,目前通用的做法就是在Linux上安裝mono,然后通過”mono your.exe“命令運行這個程序。
這種運行.net程序的辦法有兩個弱點,一個是需要客戶機安裝mono,二個是 ”mono xx.exe“ 這種命令行總讓人感到有點不太專業的味道。
那么,有沒有辦法既不安裝mono,又能讓你的.NET程序就像c語言編譯的程序那么,”直接“在Linux上運行呢?
為了解決.net程序特別是.net控制台程序在Linux平台上部署和運行的簡便性問題,我給大家准備了一個小工具,叫”AnyExec“,下面 具體談談怎么將你的.net程序與 AnyExec整合起來,形成一個可以在Linux平台上無需安裝mono就可以獨立運行的程序系統。
一,准備:
1,由於目前只有64位的AnyExec,所以需要大家准備一台64位Linux測試機。
2,下載 anyexec。在Linux測試機上運行命令: wget http://linuxdot.net/down/anyexec-1.1-linux_x64.tar.gz
3,解壓。運行解壓命令:tar -zxvf anyexec-1.1-linux_x64.tar.gz
然后進入 anyexec-1.1-linux_x64目錄,用ls命令可以看到有一個叫 any的程序文件和分別名為 app、lib和bin的三個文件夾。
你可以嘗試運行一下 any,如果看到如下信息,說明 AnyExec能夠在你的系統上正常工作。
二,整合:
1,准備一個 .NET 控制台程序。如果沒有,可以新建一個,比如,我用VS創一個叫ConsoleApplication3的控制台文件,.NET版本選4.0或4.5。
內容是:
class Program { static void Main(string[] args) { Console.WriteLine("Hello, this is my.NET program running on Linux.."); Console.WriteLine(sizeof(int)); Console.WriteLine(System.Runtime.InteropServices.Marshal.SizeOf(IntPtr.Zero)); } }
然后編譯出exe文件。
2,把exe文件上傳到 anyexec-1.1-linux_x64 文件夾下邊名叫“app”的子文件夾中。
3,回到anyexec-1.1-linux_x64目錄里面,把名字叫 ”any“的可執行文件復制一份,新文件名稱與你上傳到 app文件夾中的exe文件名一致(不含擴展名),如:ConsoleAppliction3
4,試運行: