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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

7z制作自解压安装包

發布時間:2024/4/13 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 7z制作自解压安装包 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

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

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

自解壓文件

通過UI操作可以很輕松的制作一個自解壓的文件。唯一要做的就是在點擊”確定”按鈕前選擇”創建自釋放程序”選項。

選擇后你會發現文件的后綴名直接變成 exe了。點擊確定即可生成自解壓文件。然后運行一下生成的test.exe文件,會提示你選擇解壓縮的目錄。

下面我們看看怎么通過命令行的方式生成自解壓文件。

7z.exe?a?test.exe?–sfx?testdir

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

制作簡易安裝包

所謂的簡易安裝包是指,在運行安裝程序時把安裝包中的可執行文件解壓到某個目錄,然后運行已解壓的應用程序。

準備源材料

我們先寫一個簡單的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

接著創建配置文件config.txt,內容如下:

;!@Install@!UTF-8!Title="Demo?app"ExecuteFile="TestApp.exe";!@InstallEnd@!

最后執行下面的命令生成自解壓的demoapp.exe程序:

copy?/b?7zS.sfx?+?config.txt?+?demo.7z?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壓縮包中:

7z?a?testmsi.7z?myapp.msi

創建配置文件config.txt,內容如下:

;!@Install@!UTF-8!Title="Demo?msi"BeginPrompt="Do?you?want?to?install?the?xxx?"ExecuteFile="myapp.msi";!@InstallEnd@!

最后執行下面的命令:

copy?/b?7zS.sfx?+?config.txt?+?demo.7z?demoapp2.exe

運行demoapp2.exe,首先會確認是否安裝:

點擊”yes”繼續:

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

優點

前面我們提到,要以管理員權限運行msi安裝包是不太方便的,但包裝成exe后就方便多了。

另外是為msi安裝包傳遞參數。這里有兩個問題,第一還是不方便。第二,讓用戶去指定安裝參數是不太人道的!

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

;!@Install@!UTF-8!Title="Demo?msi"BeginPrompt="Do?you?want?to?install?the?xxx?"ExecuteFile="msiexec.exe"ExecuteParameters="/i?myapp.msi?/log?c:\abc.log";!@InstallEnd@!

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

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

安裝文件的Icon

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

?

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

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

?



















本文轉自xmgdc51CTO博客,原文鏈接:http://blog.51cto.com/12953214/1942274?,如需轉載請自行聯系原作者



總結

以上是生活随笔為你收集整理的7z制作自解压安装包的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。