簡單方法打包.net程序集脫離framework

最近業餘搗鼓monogame,天然而然就關注到了.net程序脫離framework發佈的問題上了,linux

度娘,谷歌娘 都通過一番查找,無非分爲以下幾類方法:工具

一、直接使用mono運行時,附帶 bin、lib文件夾,刪去沒必要要的文件,缺點是須要寫一個引導器或者批處理之類的工具,經過mono.exe或monow.exe啓動動畫

二、採用mono官方方案boundle,至關於寫了一個簡單exe內嵌mono虛擬機,執行本身的資源文件,參看http://www.linuxdot.net/bbsfile-3354 缺點可能就是麻煩了,既要cygwin又要各類配置文件,洋洋灑灑一大頁。。。.net

三、藉助第三方打包工具,很差意思,具體的工具名字我忘記了,試過了好幾款,基本都收費,用起來並不算很方便(脫離framework只是賣點之一)orm

四、借用飛信的虛擬機,這個,記得N年前剛學C#的時候就有這個方案了,針對2.0有效,聽說是移動畫大價錢買的,如今已經放棄改用C++重寫了客戶端。。資源

 

總之,我能找到的方案基本就以上了。不過說實話,沒一個用起來省心的- -get

後來,我想了下,有了本身的一套懶人方案:虛擬機

一、採用MONO虛擬機(最新版本已經支持winform,C#4.0特性,至關給力)form

二、hook monow.exe的啓動參數,重定向到自定義程序集打包

三、(可選)若是以爲不必採用客戶機的.net,能夠直接將bin文件夾內的文件用 Enigma Virtual Box (一款免費的打包工具)打包成單一EXE

四、運行程序,無問題後,除動態讀取的資源外,其他直接所有選中刪除,win7下提示不能刪除的選擇忽略(lib文件夾要多迭代刪除幾回),或本身寫一個批處理

 

以上幾步作完後,程序集就徹底脫離framework了,簡單有效 ;-)

相關文章
相關標籤/搜索