首页 > 其他分享 >7z制作自解压安装包

7z制作自解压安装包

时间:2023-12-21 17:34:53浏览次数:38  
标签:解压 文件 exe msi 安装包 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文件替换成我们自己的。下面的样子看起来是不是会专业一些:

 

 

 

标签:解压,文件,exe,msi,安装包,7z
From: https://www.cnblogs.com/webenh/p/17919709.html

相关文章

  • 7z 命令行压缩解压详解-中文版
    1)简介7z,全称7-Zip,是一款开源软件。是目前公认的压缩比例最大的压缩解压软件。主页:http://www.7-zip.org/中文主页:http://7z.sparanoid.com/命令行版本下载:http://7z.sparanoid.com/download.htmlWindows去官网下载安装包安装linux使用命令安装:sudoaptinstallp7zip-full......
  • 归档压缩_解压缩命令
    tar,即tapearchive归档打包1.创建档案包(以下``符号是为了清楚可见) tar-cvf``打包后的文件名`` ``打包前的文件名``其中,c,表示create创建档案v,表示verbose显示详情f,表示file也可以多个目录打包ta......
  • C#利用自带的ZipFile压缩和解压zip文件,超级简单
    C#利用自带的ZipFile压缩和解压zip文件,超级简单翔星有10年+工作经验,高级软件工程师,可以解决各种问题​关注 你经常看TA的内容ZipFile类是.NETFramework4.5发布的一个C#压缩文件和解压zip文件的一个类库,它支持.NETFramework4.5以上版本,包......
  • Python中级之解压赋值
    解压赋值【一】解压赋值的概念解压赋值是指将一个可迭代对象(如列表、元组、字典的键值对等)中的元素拆分并分配给多个变量。这种技术非常方便,可以简洁地从一个数据结构中提取元素并将它们分配给多个变量。需要确保变量的数量与可迭代对象中的元素数量匹配,否则会引发ValueError......
  • Linux下解压命令、压缩命令大全,详细教程
    Linux下解压命令、压缩命令大全,详细教程linux常用的解压和压缩命令如下:1、.tar解包:tarxvfFileName.tar打包:tarcvfFileName.tarDirName(注:tar是打包,不是压缩!)2、.gz解压1:gunzipFileName.gz解压2:gzip-dFileName.gz压缩:gzipFileName3、.tar.gz和.tgz解压:tarzxvfFil......
  • 文件查找、打包压缩与解压:文件管理的得力助手
    在数字化时代,文件管理变得愈发复杂,而有效的文件查找、打包压缩和解压工具成为提高工作效率和节省存储空间的不可或缺的一部分。本文将深入探讨这三个方面,介绍一些流行的工具和技巧,助你在文件管理的道路上游刃有余。文件查找:迅速定位目标在庞大的文件系统中迅速定位目标文件是一......
  • 文件查找、打包压缩及解压
    第九章 文件查找、打包压缩及解压9.1文件查找1.echo命令可以查看变量PATH的值;其值被冒号分隔成7个字段,每个字段代表一个目录。使用which命令在环境变量PATH设置的目录中查找符合条件的命令文件,可查看其是否存在以及执行的位置: 2.ocate命令可以让用户快速查找到所需要的文件......
  • InstallShield 集成.net Framework的安装包制作
    .netFramework出现之前,一直用innosetup,setupfactory等工具打包,后来,.netFramework1.0/1.1同行的vs2002/2003中有了安装项目,制作也很方便,另外,微软也提供了一个强大的组件:MicrosoftVisualStudio.NET2003引导程序插件。通过MicrosoftVisualStudio.NET2003引导程序插件......
  • ENVI 5.6安装教程及安装包下载
    下载: http://dt1.8tupian.net/2/29913a31b1000.pg3软件介绍目前ENVI5.6版本推出了许多有用的新功能,比如深度学习、cropscience等。如果是遥感专业人士,还是建议安装功能更强大的5.6版本(5.6和5.3版本可以共存)。安装主程序安装包总目录:(1)打开软件目录,点击envi56-win.exe......
  • arcgis pro3.0-3.0.1-3.0.2安装教程大全及安装包下载
    一.产品介绍:ArcGISPro这一功能强大的单桌面GIS应用程序是一款功能丰富的软件,采用ArcGISPro用户社区提供的增强功能和创意进行开发。ArcGISPro支持2D、3D和4D模式下的数据可视化、高级分析和权威数据维护。支持通过WebGIS在一系列ArcGIS产品(例如ArcGISOnli......