7z制做自解压安装包

像7z和winRAR这样的压缩工具都支持制做自解压的文件。所谓自解压的文件就是不须要目标机器上安装解压工具,经过运行压缩包本身便可解压出压缩包中的文件。下面咱们就介绍一下如何利用7z的自解压功能制做应用程序安装包。windows

熟悉应用程序安装的朋友应该清楚,安装一个应用程序真的是可简单,简单到很简单,也能够复杂,复杂到很复杂很复杂。简单的诸如把几个文件放在一块儿打个压缩包,解压到目标机器就好了。复杂些的诸如vistual studio和office的安装,要安装这些工具对windows来讲可谓是”伤筋动骨”,不只要给windows打补丁还要安装各类辅助工具,各类程序组件,而且还要支持卸载,出了问题还要支持修复…app

搞定简单的安装程序7z天然不在话下,毕竟是老本行嘛。但7z真能搞定那么复杂的安装程序吗?说7z本身能搞定确实太夸张了,但结合msi安装包,7z确实可以胜任复杂程序的安装。在制做安装包前咱们先了解下7z的自解压功能。工具

自解压文件

经过UI操做能够很轻松的制做一个自解压的文件。惟一要作的就是在点击”肯定”按钮前选择”建立自释放程序”选项。spa

选择后你会发现文件的后缀名直接变成 exe了。点击肯定便可生成自解压文件。而后运行一下生成的test.exe文件,会提示你选择解压缩的目录。命令行

下面咱们看看怎么经过命令行的方式生成自解压文件。日志

7z.exe a test.exe –sfx testdir

OK,有了上面的基础后咱们就能够动手制做安装包了。下面就经过两个例子分别介绍简单安装包和复杂安装包的制做过程。code

制做简易安装包

所谓的简易安装包是指,在运行安装程序时把安装包中的可执行文件解压到某个目录,而后运行已解压的应用程序。blog

准备源材料

咱们先写一个简单的demo程序TestApp.exe, 它有一个配置文件TestApp.exe.config。ip

而后须要下载7zs.sfx文件。7zs.sfx文件是7z为制做自解压的安装程序提供的一个文件。9.20的7zs.sfx文件在7-Zip extra包中,以后的版本都把这个文件放在了LZMA包中,而且更名为7zs2.sfx。cmd

制做过程

首先使用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文件替换成咱们本身的。下面的样子看起来是否是会专业一些:

 

 

总结,使用7z建立安装包既能够实现简单小巧的安装场景又能够解决一些复杂安装过程当中的问题,真可谓老小咸宜!

相关文章
相关标签/搜索