c#程序是通過安裝.net安裝包才能運行的,因此有時候很不方便,必須要用戶安裝一個.net安裝包,雖然系統會帶有這個,但是還有相當的電腦是不裝這個的。這樣我們怎麼才能避免這個問題呢。查了很多資料和網上的同行們的說法。總的來說也只有兩種方式:借用其它工具和縮減.net的dll。前者是為了達到貌似的跨平台,後者是為了減少.net環境的大小來避免不方便的問題。下面以.net framework 2.0環境為例。
一、借用工具,不安裝.net framework 2.0
這種方式有兩種普遍使用的方法,借用飛信的虛擬.net環境和使用MONO啟動程序。
1、使用飛信虛擬機的方式。下載飛信安裝文件http://www.skycn.com/down.php?uri=http://skycn.gjwww.com:82/down/Fetion2008_skycn.zip,安裝成功後,在安裝目錄下:China Mobile\Fetion\VMDotNet\v2.0.50727(不同的版本目錄不太一樣,但是都有一個VMDotNet文件夾,找到它)FetionVM.exe這個文件,把你的C#運行程序拷貝到這裡,用FetionVM.exe啟動你的exe,例如可以寫成批處理:execute.bat
FetionVM.exe 你的.exe
FetionVM.exe 你的.exe
這個文件和你的程序都放在飛信的FetionVM.exe文件在一個目錄下就可以了。
2、使用MONO。過程和使用飛信一樣,下載http://download.mono-project.com/archive/2.10.6/windows-installer/1/mono-2.10.6-gtksharp-2.12.11-win32-1.exe,安裝後,安裝目錄Mono-2.10.6下,就是含有bin和lib這兩個文件夾的那個目錄,同樣把程序拷過來,調用,依然以批處理為例:execute.bat
bin\mono.exe 你的.exe
bin\mono.exe 你的.exe
批處理文件和程序放在同一個目錄。
這兩種方式我測試過,一些簡單的WinForm程序都能運行,不用裝.net環境,但是大型的軟件涉及到數據庫的就運行不了了,可能是不支持數據庫的原因吧。
二、縮減.net安裝包
這個方法就是安裝.net環境後,刪掉不用的.net裡的dll,這個操作起來有些麻煩,需要不斷地刪除dll然後運行程序測試,而且經過刪除的.net環境只適用你的程序,沒有通用性,但是這個是可以減少.net環境的大小的,就減少了程序安裝包的大小。
當然應該還有更多的方法解決.net的問題,後面有了新的結果,再共享給大家。
摘自 白楊樹