手机压缩包后缀7z怎么打开(手机文件压缩包怎么弄)

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

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

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

自解压文件

通过UI操作可以很轻松的制作一个自解压的文件。唯一要做的就是在点击”确定”按钮前选择”创建自释放程序”选项。

手机压缩包后缀7z怎么打开(手机文件压缩包怎么弄)

选择后你会发现文件的后缀名直接变成 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压缩包中:

创建配置文件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,首先会确认是否安装:

手机压缩包后缀7z怎么打开(手机文件压缩包怎么弄)

点击”yes”继续:

手机压缩包后缀7z怎么打开(手机文件压缩包怎么弄)

此时已经进入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创建安装包既可以实现简单小巧的安装场景又可以解决一些复杂安装过程中的问题,真可谓老少咸宜!

本文所有内容来自互联网,如有侵权/不实内容请联系我们删除,联系邮箱postusb@foxmail.com

发布者:缘分,转转请注明出处:https://www.bjxdyg.com/baike/178270.html

(0)
缘分缘分
上一篇 2023年 4月 25日 下午10:47
下一篇 2023年 4月 25日 下午11:13

相关推荐

  • 缺点大全(MS胶的缺点大全)

    相信大家对于自己的星座都有一些了解,那么缺点都有什么呢?一起来看看吧~ 白羊座?? 众所周知,白羊座天性爱自由。 但是他们脾气差,有孩子气,又是一个细节怪。 翻脸比翻书还快,这一点和射手座十分相似。 金牛座?? 太固执,做事一条筋。 占有欲强,又没有幽默感。[摊手] 双子座?? 做事情三分钟热度,没有长久的热情。 生活里太八面玲珑,让人觉得不可靠。 巨蟹座?…

    2022年 8月 27日
    38200
  • 灯是谁发明的(世界上第一盏电灯是谁发明的)

    当夜晚来临的时候,你会本能的打开灯,享受光明带来的生活惬意。这份光明,我们要感谢“爱迪生”。可你知道吗?爱迪生并不是灯泡的“发明者”,爱迪生到底是个什么样的人? 提到爱迪生,作为中国人肯定不陌生,绝大部分人都听过这位美国人的传奇故事。 爱迪生(1847年2月11日—1931年10月18日),世界著名的发明家、物理学家、企业家,被誉为“世界发明大王”。拥有众多…

    2023年 6月 8日
    17800
  • com口是什么接口(com口是干嘛的)

    如果你了解 C# 或者 Java 语言,接口就会是一个非常熟悉的概念。接口是一个对象上一组操作的集合,不涉及任何实现的细节,接口标志着方法和实现的分离。计算机中这种现象叫做解耦(decoupled)。 在 C++ 中,最接近于接口概念的就是纯虚类(pure virtual class)。纯虚类就是一个仅仅包含纯虚函数的类,除了纯虚函数不含有任何其它的成员变量…

    2023年 6月 13日
    16900
  • 一次函数k越大倾斜程度越大(一次函数k值越大图像越陡)

    (一)函数 1、变量:在一个变化过程中可以取不同数值的量。 常量:在一个变化过程中只能取同一数值的量。 2、函数:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因变量,y是x的函数。 *判断Y是否为X的函数,只要看X取值确定的时候,Y是否有唯一确定的值与之对应 3、定…

    2023年 5月 16日
    49600
  • sees怎么读(slide怎么读)

    1.be[bi] (am is are was were been being) CET4 | CET6 | 考研 v. 是; 有,存在; 做,成为; 发生; aux. 用来表示某人或某物即主语本身,用来表示某人或某物属于某一群体或有某种性质; 变形 过去分词: been 过去式: was 现在分词: being 第三人称单数: is 2.go [go?] …

    社会百科 2023年 5月 9日
    15200

发表回复

登录后才能评论

联系邮箱

postusb@foxmail.com

邮箱咨询: QQ交谈

邮箱:postusb@foxmail.com

工作时间:周一至周五,9:30-18:30,节假日休息