日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

讓C#程序獨立運(yùn)行(脫離 .NET Framework運(yùn)行,綠色運(yùn)行)

 昵稱10504424 2013-02-19

我覺的MS的.net方案其實很不錯。C#呢,用現(xiàn)在流行的話來說“很給力”!

但是.net版本眾多。而且.NET Framework框架很大。拖著一個大大的.net Framework總是讓人很郁悶。

我也碰到了這個讓人郁悶的問題。

在網(wǎng)上找呀找呀。找到另一個.NET Framework 替代方案。Mono。

下載地址為:http://www./mono-downloads/download.html

Mono2.10.2版本支持.net 2.0至4.0版本。

下載回來后安裝一下,我傻了居然有336M。而且Mono的居然方式是命令行的。仍然讓人很郁悶。

算了,既然安裝了。找找資料吧。

終于看到了前人的工作結(jié)晶。

Mono運(yùn)行C#程序所要的庫資源其實不多。

 

只要C:\Program Files\Mono-2.10.2\bin目錄下的。(以下均以C:\Program Files\Mono-2.10.2目錄為根目錄)

mono.exe,mono-2.0.dll

lib\mono\.net版本號\mscorlib.dll。我這里用的是.net 2.0版本。

lib\mono\gac\目錄下的必要庫文件。WinForm程序只要這5個庫就行了。

 

每個庫文件下,又有自己的.net版本號。如果用的是.net 2.0那么4.0.0.0那個目錄就可以刪除,如果你想問為什么沒有3.0、3.5的庫。答案是3.0和3.5用的是2.0的庫。而1.0的庫由于年代久遠(yuǎn),Mono2已經(jīng)不支持了。如果需要的話,可以下載Mono早期的版本。

另外我發(fā)現(xiàn)庫文件下,有同名的.mdb文件。

 

那個.mdb文件刪除掉對程序沒什么影響。所以通通刪除掉。

 經(jīng)過層層刪除,最后剩下的那幾個文件,加起來也就8M多點。而程序一點問題也沒有。完美運(yùn)行!

 

發(fā)行軟件的時候用RAR壓縮一下,程序只有3M多。很完美了!

可是我怎么知道。。我的程序具體要用到哪些庫呢?

答案是:不知道。去記程序要用到哪些庫太累了。我才不會去記呢。我有一個偷懶的辦法。新建一個文件夾,先將不變的文件放好。bin目錄下的mono.exe,mono-2.0.dll,lib\mono\.net版本號\mscorlib.dll。最后將Mono下lib\mono\gac中所有的庫文件拷貝過來。運(yùn)行編譯好的C#程序?,F(xiàn)在可以開始瘋狂的刪除了,碰到不能刪除的文件,剩下的就是我們的程序要用的庫了。此方法簡單高效,百試不爽。

 

但是接下來還有個問題,Mono那個討厭的命令行。還有如果人家電腦上裝了.net庫呢?用MS自家的.net不是更好么?于是我參考Mono官網(wǎng),用C和windows api寫了一個.net的引導(dǎo)程序。可以根據(jù)用設(shè)定來選擇.net版本,如果客戶電腦已經(jīng)安裝用戶指定版本,則優(yōu)先使用MS的.net,如果不存在則用Mono引導(dǎo)程序。

這個引導(dǎo)程序使用config.ini做為配置文件。

 

C#_Version=2.0                    //.net版本號,共有4個值:2.0、3.5、4.0C、4.0F

C#_AppName=MyBooks.exe   //預(yù)啟動的應(yīng)用程序名稱

這個引導(dǎo)程序,在32位XP下使用VS 2008編譯。因為是用windows api編寫,沒有額外的庫。所以理論上32位的系統(tǒng)應(yīng)當(dāng)都能使用,64位的沒試過。這個引導(dǎo)程序測試.net 2.0項目和.net 4.0項目都沒問題。這個程序直接調(diào)用了mono-2.0.dll。所以Mono.exe也就沒用了。下面給出我的測試項目,直接運(yùn)行monologin.exe即可。效果我還是很滿意的。同時歡迎交流!

附件下載:
c#引導(dǎo)項目.rar 3.17MB

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多