日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DotNet4应用程序打包工具(把DotNet4安装程序打包进你的应用程序;WINAPI开发,无dotNet环境也可顺利执行)【一】整体思路...

發(fā)布時(shí)間:2023/12/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DotNet4应用程序打包工具(把DotNet4安装程序打包进你的应用程序;WINAPI开发,无dotNet环境也可顺利执行)【一】整体思路... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

先說廢話

很多朋友對我寫的這個(gè)系列的第五篇比較感興趣:http://www.cnblogs.com/liulun/archive/2011/12/08/2280110.html

因?yàn)槲页兄Z第五篇就公布源碼了,但是與第五篇相關(guān)的代碼我還沒有完成,

現(xiàn)在又花了一個(gè)周末的時(shí)間來寫這篇文章

原諒我吧~

(如果你覺得這篇文章更有吸引力的話~那另當(dāng)別論)

索引:

DotNet4應(yīng)用程序打包工具->升級版【三】宿主程序分析+全部源碼下載

DotNet4應(yīng)用程序打包工具->升級版【二】安裝工具分析

DotNet4應(yīng)用程序打包工具(把DotNet4安裝程序打包進(jìn)你的應(yīng)用程序;WINAPI開發(fā),無dotNet環(huán)境也可順利執(zhí)行)【一】整體思路

好了~言歸正傳!

先來張圖片!

以升級為如下:

1:緣起

在09年的時(shí)候?yàn)榱私鉀Q斯克迪亞的問題

寫了這個(gè)工具的簡易版:http://www.cnblogs.com/liulun/archive/2009/12/18/1627313.html

那篇文章寫的實(shí)在是太簡易了~

主要是因?yàn)?NET 3.5的包太大,打包到應(yīng)用程序中去,太怪!所以就沒有深入做這個(gè)工作

最近小洋(燕洋天)又提到這個(gè)問題~

考慮到現(xiàn)在.Net 4 x86只有二十幾兆;(x86andx64才四十幾兆)

如果能打包到應(yīng)用程序中去,就美多了

于是寫了這個(gè)工具。

2:分析

別看這個(gè)工具小(只有三個(gè)按鈕一個(gè)文本框)

其實(shí)他里面包含了三個(gè)程序

第一個(gè)就是你看到的這個(gè)圖片所展示的應(yīng)用程序

我們叫他“打包工具”

第二個(gè)和第三個(gè)程序是作為資源放在“打包工具”里的

第二個(gè)程序是dotNet4的安裝包

第三個(gè)程序負(fù)責(zé)判斷客戶端是否有dotNet環(huán)境

我們叫他“宿主程序”

下面我們就分別說說這三個(gè)程序的邏輯:

2.1打包工具

選擇好您的應(yīng)用程序(我們叫他“目標(biāo)程序”)

點(diǎn)開始打包后

“打包工具”先把“宿主程序”釋放到“目標(biāo)程序”的相同的目錄下

然后得到“目標(biāo)程序”的圖標(biāo)ICON資源

然后把“宿主程序”的圖表ICON資源替換掉

然后把整個(gè)“目標(biāo)程序”當(dāng)作資源添加到“宿主程序”中

然后“打包工具”把自身的dotNet安裝包資源也添加到“宿主程序”中

至此打包成功

2.2宿主程序

宿主程序的邏輯稍微多一些

在打包成功,把打包后的“宿主程序”分發(fā)到客戶電腦上之后

客戶打開宿主程序

先檢查注冊表,看客戶環(huán)境是否安裝了dotNet4應(yīng)用程序

如果沒有安裝

釋放dotNet安裝包資源(打包時(shí)加入進(jìn)去的)

執(zhí)行dotNet安裝包程序,等待安裝進(jìn)程執(zhí)行完成

安裝完成后,再次檢查注冊表

如果順利通過檢查

就釋放目標(biāo)程序

然后執(zhí)行目標(biāo)程序

等待目標(biāo)程序進(jìn)程執(zhí)行完成

執(zhí)行完成后,刪除釋放的dotNet應(yīng)用程序和目標(biāo)程序

然后“宿主程序”退出

3:后記

3.1為什么不靜默安裝dotNet4

雖然可以做到的

但是

第一dotNet4安裝過程中可能會有很多情況發(fā)生

要處理很多邏輯,做起來太復(fù)雜,

比如:阻滯的問題:http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=1385

(如果您愿意贊助我,我會考慮做這個(gè)工作,嘿嘿)

第二客戶端環(huán)境會報(bào)毒

3.2為什么在目標(biāo)程序執(zhí)行完成后要?jiǎng)h除目標(biāo)程序

我假定您打包的“目標(biāo)程序”就是一個(gè)安裝包

而且這個(gè)安裝包的擴(kuò)展名是.exe

一個(gè)安裝包程序

基本的功能應(yīng)該有安裝、卸載、創(chuàng)建桌面圖表等等

所以我執(zhí)行了一次您的安裝包~

以后的事情就讓您自己做吧~

3.3我會公布源碼的

雖然我對C和winapi都是一知半解

但我愿意公布源碼~

在接下去的這個(gè)系列的幾篇文章中會陸續(xù)公布源碼

3.4程序可能會有問題

我是在WIN2008的機(jī)器上開發(fā)的這個(gè)程序

在WIN2003的機(jī)器上測試了這個(gè)程序

開發(fā)和測試都是64位環(huán)境

現(xiàn)在也深夜了~沒有人幫我測試~

如果有問題,我會盡快搞定的~

3.5先發(fā)布編譯版本

由于已經(jīng)把DotNet4安裝包編譯到程序里面去了比較大~

就沒有傳到博客園服務(wù)器上來

如果您對這個(gè)程序感興趣

點(diǎn)擊推薦后在評論里留下您的郵箱

我會在今天晚上六點(diǎn)之后統(tǒng)一發(fā)郵件給大家

注意:截至?xí)r間是2011年12月12號晚六點(diǎn)整~

這個(gè)時(shí)間點(diǎn)之后填寫的郵箱我就不再發(fā)送了~

見諒

請大家統(tǒng)一把郵箱中的@符號替換成#號(避免郵箱地址被采集)

總結(jié)

以上是生活随笔為你收集整理的DotNet4应用程序打包工具(把DotNet4安装程序打包进你的应用程序;WINAPI开发,无dotNet环境也可顺利执行)【一】整体思路...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。