先說廢話 因為我承諾第五篇就公布源碼了,但是與第五篇相關的代碼我還沒有完成, 現在又花了一個周末的時間來寫這篇文章 原諒我吧~ (如果你覺得這篇文章更有吸引力的話~那另當别論)
索引:
<a href="http://www.cnblogs.com/liulun/archive/2011/12/22/2298533.html" target="_blank">DotNet4應用程式打包工具->更新版【三】宿主程式分析+全部源碼下載下傳</a>
<a href="http://www.cnblogs.com/liulun/archive/2011/12/19/2292878.html" target="_blank">DotNet4應用程式打包工具->更新版【二】安裝工具分析</a>
<a href="http://www.cnblogs.com/liulun/archive/2011/12/12/2284360.html" target="_blank">DotNet4應用程式打包工具(把DotNet4安裝程式打包進你的應用程式;WINAPI開發,無dotNet環境也可順利執行)【一】整體思路</a>
好了~言歸正傳!
先來張圖檔!

以更新為如下:
1:緣起
那篇文章寫的實在是太簡易了~
主要是因為.NET 3.5的包太大,打包到應用程式中去,太怪!是以就沒有深入做這個工作
考慮到現在.Net 4 x86隻有二十幾兆;(x86andx64才四十幾兆)
如果能打包到應用程式中去,就美多了
于是寫了這個工具。
2:分析
别看這個工具小(隻有三個按鈕一個文本框)
其實他裡面包含了三個程式
第一個就是你看到的這個圖檔所展示的應用程式
我們叫他“打包工具”
第二個和第三個程式是作為資源放在“打包工具”裡的
第二個程式是dotNet4的安裝包
第三個程式負責判斷用戶端是否有dotNet環境
我們叫他“宿主程式”
下面我們就分别說說這三個程式的邏輯:
2.1打包工具
選擇好您的應用程式(我們叫他“目标程式”)
點開始打包後
“打包工具”先把“宿主程式”釋放到“目标程式”的相同的目錄下
然後得到“目标程式”的圖示ICON資源
然後把“宿主程式”的圖表ICON資源替換掉
然後把整個“目标程式”當作資源添加到“宿主程式”中
然後“打包工具”把自身的dotNet安裝包資源也添加到“宿主程式”中
至此打包成功
2.2宿主程式
宿主程式的邏輯稍微多一些
在打包成功,把打包後的“宿主程式”分發到客戶電腦上之後
客戶打開宿主程式
先檢查系統資料庫,看客戶環境是否安裝了dotNet4應用程式
如果沒有安裝
釋放dotNet安裝包資源(打包時加入進去的)
執行dotNet安裝包程式,等待安裝程序執行完成
安裝完成後,再次檢查系統資料庫
如果順利通過檢查
就釋放目标程式
然後執行目标程式
等待目标程式程序執行完成
執行完成後,删除釋放的dotNet應用程式和目标程式
然後“宿主程式”退出
3:後記
3.1為什麼不靜默安裝dotNet4
雖然可以做到的
但是
第一dotNet4安裝過程中可能會有很多情況發生
要處理很多邏輯,做起來太複雜,
第二用戶端環境會報毒
3.2為什麼在目标程式執行完成後要删除目标程式
我假定您打包的“目标程式”就是一個安裝包
而且這個安裝包的擴充名是.exe
一個安裝包程式
基本的功能應該有安裝、解除安裝、建立桌面圖表等等
是以我執行了一次您的安裝包~
以後的事情就讓您自己做吧~
3.3我會公布源碼的
雖然我對C和winapi都是一知半解
但我願意公布源碼~
在接下去的這個系列的幾篇文章中會陸續公布源碼
3.4程式可能會有問題
我是在WIN2008的機器上開發的這個程式
在WIN2003的機器上測試了這個程式
開發和測試都是64位環境
現在也深夜了~沒有人幫我測試~
如果有問題,我會盡快搞定的~
3.5先釋出編譯版本
由于已經把DotNet4安裝包編譯到程式裡面去了比較大~
就沒有傳到部落格園伺服器上來
如果您對這個程式感興趣
請點選推薦後在評論裡留下您的郵箱
我會在今天晚上六點之後統一發郵件給大家
注意:截至時間是2011年12月12号晚六點整~
這個時間點之後填寫的郵箱我就不再發送了~
見諒
請大家統一把郵箱中的@符号替換成#号(避免郵箱位址被采集)