天天看點

7z制作自解壓安裝包自解壓檔案制作簡易安裝包制作複雜的安裝包安裝檔案的Icon

像7z和winRAR這樣的壓縮工具都支援制作自解壓的檔案。所謂自解壓的檔案就是不需要目标機器上安裝解壓工具,通過運作壓縮包自己即可解壓出壓縮包中的檔案。下面我們就介紹一下如何利用7z的自解壓功能制作應用程式安裝包。

熟悉應用程式安裝的朋友應該清楚,安裝一個應用程式真的是可簡單,簡單到很簡單,也可以複雜,複雜到很複雜很複雜。簡單的諸如把幾個檔案放在一起打個壓縮包,解壓到目标機器就行了。複雜些的諸如vistual studio和office的安裝,要安裝這些工具對windows來說可謂是”傷筋動骨”,不僅要給windows打更新檔還要安裝各種輔助工具,各種程式元件,并且還要支援解除安裝,出了問題還要支援修複…

搞定簡單的安裝程式7z自然不在話下,畢竟是老本行嘛。但7z真能搞定那麼複雜的安裝程式嗎?說7z自己能搞定确實太誇張了,但結合msi安裝包,7z确實能夠勝任複雜程式的安裝。在制作安裝包前我們先了解下7z的自解壓功能。

通過UI操作可以很輕松的制作一個自解壓的檔案。唯一要做的就是在點選”确定”按鈕前選擇”建立自釋放程式”選項。

7z制作自解壓安裝包自解壓檔案制作簡易安裝包制作複雜的安裝包安裝檔案的Icon

選擇後你會發現檔案的字尾名直接變成 exe了。點選确定即可生成自解壓檔案。然後運作一下生成的test.exe檔案,會提示你選擇解壓縮的目錄。

下面我們看看怎麼通過指令行的方式生成自解壓檔案。

OK,有了上面的基礎後我們就可以動手制作安裝包了。下面就通過兩個例子分别介紹簡單安裝包和複雜安裝包的制作過程。

所謂的簡易安裝包是指,在運作安裝程式時把安裝包中的可執行檔案解壓到某個目錄,然後運作已解壓的應用程式。

我們先寫一個簡單的demo程式TestApp.exe, 它有一個配置檔案TestApp.exe.config。

然後需要下載下傳7zs.sfx檔案。7zs.sfx檔案是7z為制作自解壓的安裝程式提供的一個檔案。9.20的7zs.sfx檔案在7-Zip extra包中,之後的版本都把這個檔案放在了LZMA包中,并且改名為7zs2.sfx。

首先使用7z把要安裝的文打包:

接着建立配置檔案config.txt,内容如下:

7z制作自解壓安裝包自解壓檔案制作簡易安裝包制作複雜的安裝包安裝檔案的Icon
7z制作自解壓安裝包自解壓檔案制作簡易安裝包制作複雜的安裝包安裝檔案的Icon

最後執行下面的指令生成自解壓的demoapp.exe程式:

好了,運作demoapp.exe試試,TestApp.exe直接運作起來了。

當我們的程式不止一個檔案時,使用這種方式使用者無需執行安裝過程,且看不到一堆亂七八糟的檔案,使用體驗比較好。

前面我們提到,7z自身是無法完成複雜安裝包制作的。但是msi安裝包可以,msi安裝包是windows平台上預設的安裝程式的方式,多複雜的安裝方式都能搞定。我們可以先生成一個msi安裝包,然後像前面執行exe一樣執行msi安裝包。

有同學可能要跳起來了,既然執行msi安裝包就可以完成安裝任務,幹嘛還要脫了褲子…,多此一舉呢?這裡面自然是有很多難言之隐的,比如運作msi的體驗不好,要想把安裝日志儲存到檔案中需要在指令行運作 msiexec.exe /i xxx.msi /log abc.log。要想以管理者權限啟動msi也是做不到的,你隻能先以管理者身份啟動cmd,然後運作msiexec.exe /i xxx.msi… 使用7z則可以輕松搞定這些問題。

準備一個應用程式的msi安裝包。和前面一個,我們也需要7zs.sfx檔案。

首先把msi檔案打包到7z壓縮包中:

建立配置檔案config.txt,内容如下:

7z制作自解壓安裝包自解壓檔案制作簡易安裝包制作複雜的安裝包安裝檔案的Icon
7z制作自解壓安裝包自解壓檔案制作簡易安裝包制作複雜的安裝包安裝檔案的Icon

最後執行下面的指令:

運作demoapp2.exe,首先會确認是否安裝:

7z制作自解壓安裝包自解壓檔案制作簡易安裝包制作複雜的安裝包安裝檔案的Icon

點選”yes”繼續:

7z制作自解壓安裝包自解壓檔案制作簡易安裝包制作複雜的安裝包安裝檔案的Icon

此時已經進入msi的安裝過程中,根據提示進行配置即可。

前面我們提到,要以管理者權限運作msi安裝包是不太友善的,但包裝成exe後就友善多了。

另外是為msi安裝包傳遞參數。這裡有兩個問題,第一還是不友善。第二,讓使用者去指定安裝參數是不太人道的!

我們可以通過下面的配置檔案解決參數傳遞的問題:

7z制作自解壓安裝包自解壓檔案制作簡易安裝包制作複雜的安裝包安裝檔案的Icon
7z制作自解壓安裝包自解壓檔案制作簡易安裝包制作複雜的安裝包安裝檔案的Icon

好了,這下我們可以輕松拿到安裝日志了。

對于最終使用者來說msi是一種不常見的、專業的檔案類型,包裝成exe對使用者來說也更友好。

到目前為止我們隻做的安裝包都是這個樣子的:

7z制作自解壓安裝包自解壓檔案制作簡易安裝包制作複雜的安裝包安裝檔案的Icon

這可沒有一點專業的感覺呀!至少應該有個Icon吧!

我們可以去網上找一個叫ResourceHacker的工具,用它可以把預設的Icon檔案替換成我們自己的。下面的樣子看起來是不是會專業一些:

7z制作自解壓安裝包自解壓檔案制作簡易安裝包制作複雜的安裝包安裝檔案的Icon

總結,使用7z建立安裝包既可以實作簡單小巧的安裝場景又可以解決一些複雜安裝過程中的問題,真可謂老少鹹宜!

本文轉自sparkdev部落格園部落格,原文連結:http://www.cnblogs.com/sparkdev/p/5635612.html,如需轉載請自行聯系原作者

繼續閱讀