安装包UI美化之路-升级安装与静默安装一键打包

在实际应用中,除了产品安装外,还需要能够持续升级到新的版本,这时候升级方案就显得比较重要;而还有一些使用场景,需要咱们的安装包在安装时,不要显示安装界面,直接在后台进行安装!

这些业务功能,都是非常实用且必要的,我们当然不会漏掉!nsNiuniuSkin安装包打包解决方案,发展到今天,已经不再是一个安装包UI美化的插件了;而是一整套完整的安装包制作与升级解决方案,UI界面变成了其中的一个点;我们一如既往的关注每一个细节,做精而美的产品!

总体思路与方案

在我们的解决方案中,产品安装包与产品升级包就是同一个安装包,普通安装包与静默安装包,也是同一个包;即同一个安装包具备了首次安装、升级安装、静默安装等等能力,只需要通过运行安装包时,按要求传递不同的命令行参数即可。

在安装包启动的时候,往往有两种方式:

  • 一种是在桌面双击直接运行安装,同时进行安装目录与安装行为的选择控制,点击下一步进行安装;
  • 一种是通过其他程序调用起来,通过命令行参数指定相应的安装路径,指定安装行为 比如是否自动开始安装,是否显示界面,安装完成是否自动运行目标程序等

在制作安装包时,我们给安装包内置了几个命令行参数,以便在后续的升级与静默安装的场景中能够快速应用。

参数名称参数解释示例
-AutoInstall是否自动开始安装-AutoInstall=1
-AutoOpen安装完成后,是否自动打开主程序-AutoOpen=1
-fakecmd占位命令,无实际意义-fakecmd=1
/S用于指定是否是静默安装/S
/D用于指定安装路径/D=E:\Software\Test\

其中/S与/D是NSIS内置命令,其他的参数的解析代码如下,解析出来后,我们在安装脚本中将根据相关的标志位来控制后续的安装行为:

Function InstallParamCheck	
	#获取安装包的命令行参数,确认是升级安装还是静默安装
	#-fakecmd=1作为占位符,在调用时,请保持,并且保证各个参数的顺序,否则会有解析问题
	#Setup.exe -AutoInstall=1 -AutoOpen=1 -fakecmd=1 /S /D=E:\Software\Test\  
	#test
	
	StrCpy $sCmdAutoInstall "0"
	${Getparameters} $R0
	#解析参数数据	
	${GetOptions} $R0 "-AutoInstall=" $sCmdAutoInstall
	${GetOptions} $R0 "-AutoOpen=" $sCmdOpenWhenFinished
	
FunctionEnd

接下来我们实际看看如何应用:

软件升级

软件产品一般的升级逻辑如下:

  1. 在软件主程序启动或运行过程中,能够检查是否有新版本 一般是拿软件本地版本,调用服务器端的版本检查接口,以确定是否有新版本要升级,以及新版本安装包(即升级包)的下载地址

  2. 在软件主程序中,下载新版本的安装包到本地

  3. 在软件主程序中,调用刚下载下来的新版本安装包,传递指定的命令行参数(传递当前主程序所在目录,以便覆盖原来的程序文件),进行升级

  4. 新版本安装包安装完成后,自动拉起新的软件主程序,升级完成

    比如在nsNiuniuSkin界面在线设计引擎安装包所在目录下,通过命令行输入以下命令,则可以指定安装目录,自动开始安装:

    NSNiuniuSKin_DuiDesigner_Setup.exe -AutoInstall=1 -AutoOpen=1 -fakecmd=1 /D=E:\Software\Test\
    

    注:

    • 在不同的软件语言中,调用第三方程序,传递命令行的方式各不相同,但最终的行为都将是一致的
    • 如果此处不指定安装目录,其实也是可以的,我们会自动从注册表中查找上次安装的路径进行安装,同样也会是当前主程序所在目录
    • 需要注意的是 -fakecmd,这个参数并无实际意义,主要用于占位,否则在安装包中解析前面的一个参数会失败

以上流程中,第1点与第2点、第3点是软件产品自己需要处理的事情,这对于各个软件厂商而言,也是非常容易的事;nsNiuniuSkin在这中间所要做的事情是:

  • 检查命令行参数,确定安装行为
  • 检查命令行参数,确定安装路径
  • 杀掉旧的主程序,开始新的版本的安装
  • 安装完成后,自动拉起新的主程序

这样来看,是不是软件升级的流程就比较清晰了呢?值得一提的是,我们不做增量升级,我们做的是安装包的自动覆盖安装,来实现版本的升级。

静默安装

静默安装在常规的安装行为中,不是很常见,但也确实有其应用场景,比如在安装自己的产品时,需要依赖一个第三方的产品功能;或者需要把自己的产品在安装其他产品时,同步进行安装,这时候静默安装的作用就体现出来了。

nsNiuniuSkin安装包打包解决方案通过解析命令行参数,设置静默安装标志,同时将整个安装行为路由到普通的安装行为中,在不呈现界面的前提下,确保与普通安装包的安装行为一致,避免需要维护普通安装与静默安装的两个不同的安装逻辑分支。

与此同时,静默安装同样可以指定软件要安装到的路径,如果不指定,则会以安装包的默认安装路径进行安装。

比如在nsNiuniuSkin界面在线设计引擎安装包所在目录下,通过命令行输入以下命令,则可以指定安装目录,自动开始静默安装:

NSNiuniuSKin_DuiDesigner_Setup.exe -AutoOpen=1 -fakecmd=1 /S /D=E:\Software\Test\

与软件升级的流程相比,静默安装主要是多出了一个 /S 参数来确定是否静默安装,这样运行起来的安装包,没有任何的界面显示;同时不用再指定是否自动开始安装,静默安装都是自动开始安装的。

假如你是想在一个NSIS安装包中,静默的安装我们的上述安装包的话,脚本可以这样写:

ExecWait '"$INSTDIR\NSNiuniuSKin_DuiDesigner_Setup.exe" -AutoOpen=0 -fakecmd=1 /S /D=E:\Software\Test\'

后记

你的产品是否也需要这样的功能呢,你打算如何实现呢,咱们一起聊聊吧!

您也可以下载我们的nsNiuniuSkin界面在线设计引擎安装包,实际测试一下: http://www.leeqia.com/download/NSNiuniuSKin_DuiDesigner_Setup.exe

结语

在安装包安装过程中,精美的UI往往能让客户对所安装产品的印象更加深刻,更能体现出软件服务商在用户体验上的专注与用心! 希望我们的努力,能够让安装包制作再容易一点,再快乐一点!

愿天下没有难做的安装包!

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Linux 平台上,WebSphere 的全平台安装包可以通过静默安装方式进行安装静默安装方式可以自动化执行安装过程,不需要人工交互。以下是 WebSphere 全平台安装包在 Linux 平台上的静默安装步骤: 1. 下载并解压 WebSphere 全平台安装包到本地某个目录。 2. 创建一个 response file 文件,用于配置安装参数和选项。可以使用 WebSphere 安装程序提供的样例 response file 文件进行编辑和修改,也可以根据实际需要自行创建。例如,可以使用以下命令创建一个 response file 文件: ``` ./install -log install.log -silent -options /path/to/responsefile.txt ``` 在 response file 文件中,可以指定 WebSphere 的安装目录、安装类型、组件选择、端口号等参数和选项,例如: ``` INSTALLER_UI=silent USER_INSTALL_DIR=/opt/IBM/WebSphere/AppServer WAS_INSTALL_TYPE=ND COMP1_SELECTED=true COMP2_SELECTED=true … ``` 3. 在终端中使用命令行执行安装程序,并指定 response file 文件。例如,可以使用以下命令执行安装程序: ``` ./install -log install.log -options /path/to/responsefile.txt ``` 在执行安装程序时,可以指定一些额外的参数和选项,例如指定安装程序语言、指定安装程序日志文件等。 4. 等待安装程序执行完毕,检查安装日志文件和安装目录,确保 WebSphere 安装成功。 需要注意的是,在 Linux 平台上进行 WebSphere 静默安装时,可能需要安装一些依赖库和环境,例如 Java 运行环境、GTK+ 库等。用户需要在安装前仔细阅读 WebSphere 相应的文档,了解安装前的准备工作和注意事项。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值