像7z和winRAR這樣的壓縮工具都支持制作自解壓的文件 。所謂自解壓的文件就是不需要目標(biāo)機(jī)器上安裝解壓工具,通過運(yùn)行壓縮包自己即可解壓出壓縮包中的文件 。下面我們就介紹一下如何利用7z的自解壓功能制作應(yīng)用程序安裝包 。
熟悉應(yīng)用程序安裝的朋友應(yīng)該清楚,安裝一個應(yīng)用程序真的是可簡單,簡單到很簡單,也可以復(fù)雜,復(fù)雜到很復(fù)雜很復(fù)雜 。簡單的諸如把幾個文件放在一起打個壓縮包,解壓到目標(biāo)機(jī)器就行了 。復(fù)雜些的諸如vistual studio和office的安裝,要安裝這些工具對windows來說可謂是”傷筋動骨”,不僅要給windows打補(bǔ)丁還要安裝各種輔助工具,各種程序組件,并且還要支持卸載 , 出了問題還要支持修復(fù)…
搞定簡單的安裝程序7z自然不在話下 , 畢竟是老本行嘛 。但7z真能搞定那么復(fù)雜的安裝程序嗎?說7z自己能搞定確實太夸張了,但結(jié)合msi安裝包,7z確實能夠勝任復(fù)雜程序的安裝 。在制作安裝包前我們先了解下7z的自解壓功能 。
自解壓文件通過UI操作可以很輕松的制作一個自解壓的文件 。唯一要做的就是在點擊”確定”按鈕前選擇”創(chuàng)建自釋放程序”選項 。

選擇后你會發(fā)現(xiàn)文件的后綴名直接變成 exe了 。點擊確定即可生成自解壓文件 。然后運(yùn)行一下生成的test.exe文件 , 會提示你選擇解壓縮的目錄 。
下面我們看看怎么通過命令行的方式生成自解壓文件 。
7z.exe a test.exe –sfx testdirOK,有了上面的基礎(chǔ)后我們就可以動手制作安裝包了 。下面就通過兩個例子分別介紹簡單安裝包和復(fù)雜安裝包的制作過程 。
制作簡易安裝包所謂的簡易安裝包是指,在運(yùn)行安裝程序時把安裝包中的可執(zhí)行文件解壓到某個目錄 , 然后運(yùn)行已解壓的應(yīng)用程序 。
準(zhǔn)備源材料我們先寫一個簡單的demo程序TestApp.exe, 它有一個配置文件TestApp.exe.config 。
然后需要下載7zs.sfx文件 。7zs.sfx文件是7z為制作自解壓的安裝程序提供的一個文件 。9.20的7zs.sfx文件在7-Zip extra包中 , 之后的版本都把這個文件放在了LZMA包中,并且改名為7zs2.sfx 。
制作過程首先使用7z把要安裝的文打包:
7z a demo.7z TestApp.exe TestApp.exe.config接著創(chuàng)建配置文件config.txt,內(nèi)容如下:
;!@Install@!UTF-8!Title="Demo app"ExecuteFile="TestApp.exe";!@InstallEnd@!最后執(zhí)行下面的命令生成自解壓的demoapp.exe程序:
copy /b 7zS.sfx + config.txt + demo.7z demoapp.exe好了,運(yùn)行demoapp.exe試試,TestApp.exe直接運(yùn)行起來了 。
優(yōu)點當(dāng)我們的程序不止一個文件時,使用這種方式用戶無需執(zhí)行安裝過程 , 且看不到一堆亂七八糟的文件,使用體驗比較好 。
制作復(fù)雜的安裝包前面我們提到,7z自身是無法完成復(fù)雜安裝包制作的 。但是msi安裝包可以,msi安裝包是windows平臺上默認(rèn)的安裝程序的方式,多復(fù)雜的安裝方式都能搞定 。我們可以先生成一個msi安裝包,然后像前面執(zhí)行exe一樣執(zhí)行msi安裝包 。
有同學(xué)可能要跳起來了,既然執(zhí)行msi安裝包就可以完成安裝任務(wù),干嘛還要脫了褲子… , 多此一舉呢?這里面自然是有很多難言之隱的,比如運(yùn)行msi的體驗不好 , 要想把安裝日志保存到文件中需要在命令行運(yùn)行 msiexec.exe /i xxx.msi /log abc.log 。要想以管理員權(quán)限啟動msi也是做不到的,你只能先以管理員身份啟動cmd,然后運(yùn)行msiexec.exe /i xxx.msi… 使用7z則可以輕松搞定這些問題 。
原材料準(zhǔn)備一個應(yīng)用程序的msi安裝包 。和前面一個 , 我們也需要7zs.sfx文件 。
推薦閱讀
- 手機(jī)太燙可以放在冰箱嗎 手機(jī)太燙可以放冰箱嗎
- 小米 14 手機(jī)官方渲染圖放出,采用經(jīng)典立邊與巴黎飾釘紋理設(shè)計
- 手機(jī)放在冷凍里會壞嗎 手機(jī)放冰箱冷凍會壞嗎
- 夏天手機(jī)發(fā)燙可以放冰箱嗎 手機(jī)發(fā)燙可以放冰箱嗎
- 手機(jī)被刷機(jī)怎樣找回原來的數(shù)據(jù) 手機(jī)刷機(jī)怎么恢復(fù)原來的東西
- 如何恢復(fù)蘋果手機(jī)備忘錄 蘋果備忘錄突然沒了是為什么
- 蘋果手機(jī)怎么充不進(jìn)去電 蘋果手機(jī)一充電就觸摸不靈
- 手機(jī)p站怎么解除瀏覽限制 手機(jī)p站怎么解除r18設(shè)置
- 小米手機(jī)投屏電視怎么全屏 手機(jī)投屏電視怎么全屏
- 一部手機(jī)怎么登錄兩個微信 一個手機(jī)如何登錄兩個微信
