CN102955689A - 软件安装包的制作方法和软件安装包装置 - Google Patents

软件安装包的制作方法和软件安装包装置 Download PDF

Info

Publication number
CN102955689A
CN102955689A CN2011102430585A CN201110243058A CN102955689A CN 102955689 A CN102955689 A CN 102955689A CN 2011102430585 A CN2011102430585 A CN 2011102430585A CN 201110243058 A CN201110243058 A CN 201110243058A CN 102955689 A CN102955689 A CN 102955689A
Authority
CN
China
Prior art keywords
software
installation
logic
resource bag
api
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011102430585A
Other languages
English (en)
Other versions
CN102955689B (zh
Inventor
库宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201110243058.5A priority Critical patent/CN102955689B/zh
Priority claimed from CN201110243058.5A external-priority patent/CN102955689B/zh
Publication of CN102955689A publication Critical patent/CN102955689A/zh
Application granted granted Critical
Publication of CN102955689B publication Critical patent/CN102955689B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种软件安装包的制作方法,包括:A、利用脚本将软件资源文件制作成安装资源包;B、为所述安装资源包增加个性化处理逻辑;并设置视窗操作系统安装工具(Windows Installer)的应用程序编程接口(API),该API用于在安装包执行时读取所述安装资源包和个性化处理逻辑进行安装操作;C、将所述安装资源包、个性化处理逻辑以及API封装成可执行格式的软件安装包。本发明还公开了一种软件安装包装置,包括安装资源包、个性化处理逻辑模块以及API。利用本发明,既可以使软件包能顺利安装,又能为用户提供更多个性化的软件信息。

Description

软件安装包的制作方法和软件安装包装置
技术领域
本发明涉及数据处理设备的软件技术领域,尤其涉及一种软件安装包的制作方法和软件安装包装置。
背景技术
计算机软件经过了几十年的发展,慢慢地与互联网融合为一体。开放与合作已经成为互联网技术发展的必然趋势,未来的互联网可以“更多的融入”,也能更多地分享和收获。打造一个更加开发平台将使整个互联网的用户有一个全新的体验。
目前软件安装包的主要任务是:压缩程序文件到资源中,并在安装时释放程序文件到客户机。更为细粒度的任务是设定安装信息、产品名、组织文件映射,源目录到目标目录、展现用户界面,供用户查看许可协议、软件序列号、功能特性展示、安装进度等,并要配置快捷方式、注册路径、版本、控制面版“添加删除”等信息。
现有技术中,制作软件安装包通常是通过专用的制作软件来完成,常用的软件安装包的制作软件包括:
1)Nullsoft脚本安装系统(NSIS,Nullsoft Scriptable Install System),NSIS是一个开源的Windows操作系统下安装程序的制作软件。它提供了安装、卸载、系统设置、文件解压缩等功能。
2)InstallShield系统,InstallShield是行业标准工具,用于确保在客户系统上正确安装、配置、更新以及最终卸载Windows操作系统的软件产品。
3)Microsoft软件安装(MSI)文件制作工具(Windows Installer),即Windows操作系统安装管理系统,MSI文件是Windows Installer的数据包,它实际上是一个数据库,包含安装一种产品所需要的信息和在很多安装情形下安装(和卸载)程序所需的指令和数据。MSI是相应安装信息和操作指令的载体,是关系数据库文件,并支持回滚。
现有软件安装包制作技术的缺陷为:
现有任何一种软件安装包制作工具所制成的软件安装包都是标准的、单一的处理逻辑,例如Windws操作系统标准的安装界面以及安装进度逻辑等,在安装软件的过程中不能提供个性化定制的处理逻辑。如何使软件安装包既能在windows操作系统中顺利安装运行,又能在安装过程中为用户提供更多更个性化的软件信息,例如提供个性化的安装介绍界面逻辑、个性化的人机交互逻辑、以及个性化的产品功能处理逻辑等,已经成为目前需要迫切解决的一个技术问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种软件安装包的制作方法,既可以使软件安装包在Windows操作系统中能顺利安装,又能在安装过程中为用户提供更多个性化的软件信息。
本发明的另一目的在于提供一种软件安装包装置,可以在Windows操作系统中能顺利安装,又能在安装过程中为用户提供更多个性化的软件信息。
本发明的技术方案是这样实现的:
一种软件安装包的制作方法,包括:
A、利用脚本将软件资源文件制作成安装资源包;
B、为所述安装资源包增加个性化处理逻辑;并设置视窗操作系统安装工具Windows Installer的API,该API用于在安装包执行时读取所述安装资源包和个性化处理逻辑进行安装操作;
C、将所述安装资源包、个性化处理逻辑以及API封装成可执行格式的软件安装包。
一种软件安装包装置,包括安装资源包、个性化处理逻辑模块以及API;其中:所述安装资源包为利用脚本将软件资源文件制作成的安装资源包;所述个性化处理逻辑模块中包括为所述安装资源包对应配置的个性化处理逻辑;所述API为Windows Installer的API,用于在软件安装包装置执行时读取所述安装资源包和个性化处理逻辑进行安装操作。
与现有技术相比,本发明所的软件安装包中包括由软件资源文件制成安装资源包即MSI文件,以及为该安装资源包配置的个性化处理逻辑,还包括Windows Installer的API以在安装包执行时读取所述安装资源包和个性化的处理逻辑,从而使软件安装包既能在windows操作系统中顺利安装运行,又能在安装过程中为用户提供更多更个性化的软件信息,例如提供个性化的安装介绍界面逻辑、个性化的人机交互逻辑、以及个性化的产品功能处理逻辑等。
附图说明
图1为本发明所述软件安装包制作方法的流程图;
图2为本发明所述制作软件安装包的一种技术架构示意图;
图3为制作封装了卸载程序的软件安装包的一种技术架构示意图;
图4为本发明所述软件安装包装置的一种示意图;
图5为封装了卸载程序的所述软件安装包装置的一种示意图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
本发明不但适用于计算机,还可以适用于各种数据处理设备(如智能手机、平板电脑等)。
图1为本发明所述软件安装包制作方法的流程图。参见图1,该流程包括:
步骤101、利用脚本将软件资源文件制作成安装资源包。
步骤102、为所述安装资源包增加个性化处理逻辑;并设置视窗操作系统安装工具(Windows Installer)的API,该API用于在安装包执行时读取所述安装资源包和个性化处理逻辑进行安装操作。
步骤103、将所述安装资源包、个性化处理逻辑以及API封装成可执行格式的软件安装包。
图2为本发明所述制作软件安装包的一种技术架构示意图。参见图2,下面对本发明的方法进一步说明。
首先在步骤101中,利用InstallShield脚本工具201,将软件的所有资源文件制作成一个安装资源包即以.MSI为后缀的资源文件202,在制作的过程中,软件的相关资源文件在用户机上的真实安装路径、目录结构等描述信息、快捷方式、注册表信息都由所述InstallShield脚本工具通过脚本配置在该.MSI文件202中。
然后在步骤102中,建立微软基础类(MFC,Microsoft Foundation Classes)工程,并接受所述安装资源包202即所述.MSI文件作为本MFC的资源文件,再利用MFC工具根据软件安装程序本身的个性化需求,为所述.MSI文件增加对应的个性化处理逻辑203,例如:所述个性化处理逻辑可以包括以下任意个处理逻辑:界面处理逻辑、人机交互处理逻辑、产品功能处理逻辑。
所述各个个性化处理逻辑可以根据软件需要在软件的安装过程中显示预先设定的界面和信息,或执行特定的处理。例如,所述界面处理逻辑和人机交互处理逻辑可以控制具体的安装界面过程和人机交互信息,如第一步进行用户机器安装环境的检查,第二步让用户选择安装目录,第三步让用户选择是否开机自动运行,显示桌面快捷方式等等。再例如,所述产品功能处理逻辑可以在安装过程中控制产品的一些特殊逻辑,如写某些注册表项等操作。
接着利用所述MFC工具设置Windows Installer的API 204,该API 204用于在安装包执行时读取所述.MSI文件和个性化处理逻辑以进行安装操作。此处,所述API具体为Windows Installer的组件Msiexec.exe程序。
在步骤103中,将所述安装资源包202、个性化处理逻辑203以及API 204封装成可执行格式的软件安装包205。
当所述软件安装包205执行时,则调用所述API 204即Msiexec.exe程序,Msiexec.exe程序用Msi.dll读取所述安装资源包202即.MSI文件和所述个性化处理逻辑203,从而依照所述个性化处理逻辑执行安装流程,并由WindowsInstaller执行与安装有关的任务:包括将文件复制到硬盘、修改注册表、创建桌面快捷方式,最终将软件程序206安装到用户机上。
本发明中,软件的目录结构也可以自定义设定,所述安装资源包202中包括软件目录结构的描述信息,在安装软件时按照这些目录结构描述信息在用户机上创建软件目录结构。软件卸载的时候,如果按照现有的桌面软件的安装、卸载的过程则通常需要一一配对,例如使用Microsoft软件安装(MSI)工具制作的安装包,在卸载软件的时候只能卸载与该版本匹配的安装目录文件,而并不能达到整个软件不留痕迹的彻底清除。因此本发明可以利用Nullsoft脚本安装系统(NSIS,Nullsoft Scriptable Install System)脚本重新编写卸载程序来控制软件的卸载行为。
图3为制作封装了卸载程序的软件安装包的一种技术架构示意图。参见图3,本发明可以利用Nullsoft脚本安装系统(NSIS,Nullsoft Scriptable InstallSystem)的脚本工具208,制作用于删除所述安装资源包202中所描述的软件目录结构的删除逻辑,并将该删除逻辑编译成可执行的卸载程序207,将该卸载程序207封装到所述软件安装包205中。
所述NSIS为Windows下支持脚本的安装程序,完全免费,开放源代码,支持脚本,可以通过编写脚本来控制安装过程的任何细节。所述利用NSIS生成的卸载程序可封装到软件安装包中,在该卸载程序启动后即可实施对软件的卸载,卸载的实质操作就是将所述安装资源包中所描述的软件目录结构删除,从而可以将整个软件(包括各个版本的软件)不留痕迹地彻底清除。
而当软件目录结构发生变化时,只需简单的修改相应InstallShield脚本的配置信息即可,所述安装资源包202中的软件目录结构描述信息也相应发生改变,从而可以达到针对不同软件目录结构的安装配置过程。
当所述安装资源包202中的软件目录结构描述信息发生改变时,本发明进一步更改所述删除逻辑用以删除所述更改后的软件目录结构,将更改后的所述删除逻辑编译成可执行的卸载程序,并将该卸载程序封装到所述软件安装包中。
图4为本发明所述软件安装包装置的一种示意图。参见图4,该软件安装包装置400包括安装资源包401、个性化处理逻辑模块402以及API 403;其中:所述安装资源包401为利用InstallShield脚本将软件资源文件制作成的安装资源包即.MSI文件;所述个性化处理逻辑模块402中包括为所述安装资源包202对应配置的个性化处理逻辑;所述API 403为Windows Installer的API,用于在软件安装包执行时读取所述安装资源包和个性化处理逻辑进行安装操作。
在一种具体实施例中,所述个性化处理逻辑包括以下任意个处理逻辑:界面处理逻辑、人机交互处理逻辑、产品功能处理逻辑。
图5为封装了卸载程序的所述软件安装包装置的一种示意图。参见图5,所述安装资源包401中包括软件目录结构描述信息;且该装置400中进一步包括卸载程序404,用于删除所述安装资源包中所描述的软件目录结构。所述卸载程序为NSIS脚本程序。
本发明尤其可以适用于桌面开放软件,采用本发明的桌面开放软件除了具有普通软件安装,卸载的通常功能外,还可结合软件自身特点向用户展现更多个性化的信息和处理逻辑。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (11)

1.一种软件安装包的制作方法,其特征在于,包括:
A、利用脚本将软件资源文件制作成安装资源包;
B、为所述安装资源包增加个性化处理逻辑;并设置视窗操作系统安装工具Windows Installer的应用程序编程接口API,该API用于在安装包执行时读取所述安装资源包和个性化处理逻辑进行安装操作;
C、将所述安装资源包、个性化处理逻辑以及API封装成可执行格式的软件安装包。
2.根据权利要求1所述的方法,其特征在于,所述个性化处理逻辑包括以下任意个处理逻辑:
界面处理逻辑、人机交互处理逻辑、产品功能处理逻辑。
3.根据权利要求1所述的方法,其特征在于,步骤A中所述安装资源包中包括软件目录结构的描述信息;且该方法进一步包括:利用脚本制作用于删除所述安装资源包中所描述的软件目录结构的删除逻辑,将该删除逻辑编译成可执行的卸载程序,将该卸载程序封装到所述软件安装包中。
4.根据权利要求3所述的方法,其特征在于,当所述安装资源包中的软件目录结构描述信息发生改变时,进一步更改所述删除逻辑用以删除所述更改后的软件目录结构,将更改后的所述删除逻辑编译成可执行的卸载程序,并将该卸载程序封装到所述软件安装包中。
5.根据权利要求3或4所述的方法,其特征在于,所述制作删除逻辑的脚本为NSIS脚本。
6.根据权利要求1所述的方法,其特征在于,步骤A所述的脚本为InstallShield脚本,所述的安装资源包为MSI文件。
7.一种软件安装包装置,其特征在于,包括安装资源包、个性化处理逻辑模块以及API;其中:所述安装资源包为利用脚本将软件资源文件制作成的安装资源包;所述个性化处理逻辑模块中包括为所述安装资源包对应配置的个性化处理逻辑;所述API为Windows Installer的API,用于在软件安装包装置执行时读取所述安装资源包和个性化处理逻辑进行安装操作。
8.根据权利要求7所述的装置,其特征在于,所述个性化处理逻辑包括以下任意个处理逻辑:
界面处理逻辑、人机交互处理逻辑、产品功能处理逻辑。
9.根据权利要求7所述的装置,其特征在于,所述安装资源包中包括软件目录结构描述信息;且该装置中进一步包括:卸载程序,用于删除所述安装资源包中所描述的软件目录结构。
10.根据权利要求9所述的装置,其特征在于,所述卸载程序为NSIS脚本程序。
11.根据权利要求7所述的装置,其特征在于,所述的安装资源包为MSI文件。
CN201110243058.5A 2011-08-23 软件安装包的制作方法和软件安装包装置 Active CN102955689B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110243058.5A CN102955689B (zh) 2011-08-23 软件安装包的制作方法和软件安装包装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110243058.5A CN102955689B (zh) 2011-08-23 软件安装包的制作方法和软件安装包装置

Publications (2)

Publication Number Publication Date
CN102955689A true CN102955689A (zh) 2013-03-06
CN102955689B CN102955689B (zh) 2016-12-14

Family

ID=

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218269A (zh) * 2013-03-22 2013-07-24 北京飞流九天科技有限公司 应用软件评分方法及系统
CN104346195A (zh) * 2014-06-05 2015-02-11 腾讯科技(深圳)有限公司 软件安装方法和系统
CN105094885A (zh) * 2015-06-16 2015-11-25 杭州昆海信息技术有限公司 组件安装方法及装置
CN105446775A (zh) * 2015-11-20 2016-03-30 北京奇虎科技有限公司 游戏安装包的配置化生成方法及装置
CN106528268A (zh) * 2016-11-07 2017-03-22 国云科技股份有限公司 一种云平台windows系统的软件应用包制作方法
CN106775776A (zh) * 2017-01-25 2017-05-31 武汉天喻教育科技有限公司 一种软件安装界面的优化方法及系统
WO2017107824A1 (zh) * 2015-12-22 2017-06-29 阿里巴巴集团控股有限公司 应用程序的运行方法和装置
CN106936633A (zh) * 2017-03-09 2017-07-07 腾讯科技(深圳)有限公司 一种应用安装包制作的方法及服务器
CN108228196A (zh) * 2016-12-12 2018-06-29 腾讯科技(深圳)有限公司 应用程序的打包方法和装置
CN108958826A (zh) * 2017-05-22 2018-12-07 北京京东尚科信息技术有限公司 动态配置应用安装包的方法和装置
CN109189418A (zh) * 2018-11-08 2019-01-11 郑州云海信息技术有限公司 一种Linux操作系统软件生成、安装方法及系统
CN109460961A (zh) * 2017-09-06 2019-03-12 卡西欧计算机株式会社 信息处理装置、设置方法以及计算机可读存储介质
CN109683937A (zh) * 2018-12-26 2019-04-26 斑马网络技术有限公司 更新方法、装置和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020013939A1 (en) * 1999-12-30 2002-01-31 International Business Machines Corporation Request based automation of software installation, customization and activation
CN101561762A (zh) * 2008-04-18 2009-10-21 鸿富锦精密工业(深圳)有限公司 软件安装程序打包系统及方法
US7694296B1 (en) * 2005-05-24 2010-04-06 Symantec Corporation Preventing unauthorized installs and uninstalls of software modules

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020013939A1 (en) * 1999-12-30 2002-01-31 International Business Machines Corporation Request based automation of software installation, customization and activation
US7694296B1 (en) * 2005-05-24 2010-04-06 Symantec Corporation Preventing unauthorized installs and uninstalls of software modules
CN101561762A (zh) * 2008-04-18 2009-10-21 鸿富锦精密工业(深圳)有限公司 软件安装程序打包系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
纪星: "使用NSIS脚本语言编写安装程序", 《电脑编程技巧与维护》, no. 2, 31 December 2008 (2008-12-31) *

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218269A (zh) * 2013-03-22 2013-07-24 北京飞流九天科技有限公司 应用软件评分方法及系统
CN103218269B (zh) * 2013-03-22 2015-10-28 北京飞流九天科技有限公司 应用软件评分方法及系统
CN104346195A (zh) * 2014-06-05 2015-02-11 腾讯科技(深圳)有限公司 软件安装方法和系统
CN104346195B (zh) * 2014-06-05 2016-05-25 腾讯科技(深圳)有限公司 软件安装方法和系统
CN105094885A (zh) * 2015-06-16 2015-11-25 杭州昆海信息技术有限公司 组件安装方法及装置
CN105446775A (zh) * 2015-11-20 2016-03-30 北京奇虎科技有限公司 游戏安装包的配置化生成方法及装置
CN105446775B (zh) * 2015-11-20 2019-02-01 北京奇虎科技有限公司 游戏安装包的配置化生成方法及装置
CN106909353A (zh) * 2015-12-22 2017-06-30 阿里巴巴集团控股有限公司 应用程序的运行方法和装置
WO2017107824A1 (zh) * 2015-12-22 2017-06-29 阿里巴巴集团控股有限公司 应用程序的运行方法和装置
CN106909353B (zh) * 2015-12-22 2019-12-13 阿里巴巴集团控股有限公司 应用程序的运行方法和装置
US10671366B2 (en) 2015-12-22 2020-06-02 Alibaba Group Holding Limited App program running method and apparatus
CN106528268A (zh) * 2016-11-07 2017-03-22 国云科技股份有限公司 一种云平台windows系统的软件应用包制作方法
CN108228196A (zh) * 2016-12-12 2018-06-29 腾讯科技(深圳)有限公司 应用程序的打包方法和装置
CN106775776A (zh) * 2017-01-25 2017-05-31 武汉天喻教育科技有限公司 一种软件安装界面的优化方法及系统
CN106775776B (zh) * 2017-01-25 2020-04-10 武汉天喻教育科技有限公司 一种软件安装界面的优化方法及系统
CN106936633A (zh) * 2017-03-09 2017-07-07 腾讯科技(深圳)有限公司 一种应用安装包制作的方法及服务器
CN106936633B (zh) * 2017-03-09 2020-06-05 腾讯科技(深圳)有限公司 一种应用安装包制作的方法及服务器
CN108958826A (zh) * 2017-05-22 2018-12-07 北京京东尚科信息技术有限公司 动态配置应用安装包的方法和装置
CN109460961A (zh) * 2017-09-06 2019-03-12 卡西欧计算机株式会社 信息处理装置、设置方法以及计算机可读存储介质
CN109460961B (zh) * 2017-09-06 2023-05-16 卡西欧计算机株式会社 信息处理装置、设置方法以及计算机可读存储介质
CN109189418A (zh) * 2018-11-08 2019-01-11 郑州云海信息技术有限公司 一种Linux操作系统软件生成、安装方法及系统
CN109683937A (zh) * 2018-12-26 2019-04-26 斑马网络技术有限公司 更新方法、装置和存储介质

Similar Documents

Publication Publication Date Title
CN107992308B (zh) 一种安卓终端应用程序的插件化管理方法
CN110502222B (zh) 外发依赖内部基础库的aar方法、装置、介质和设备
WO2016155388A1 (zh) 应用安装、运行方法及装置
US10216510B2 (en) Silent upgrade of software with dependencies
EP2955627B1 (en) Managing versions of components of a software suite
CN103970563B (zh) 动态加载安卓类的方法
CN102455931B (zh) 一种Android平台工程的开发方法及系统
KR20070049095A (ko) 서비스 패키지로 소프트웨어 제품을 업데이트하는 방법 및컴퓨터 판독가능 매체
WO2018032653A1 (zh) 一种Java卡应用的功能实现方法及装置
US7890930B2 (en) Method and system for allowing an eclipse feature to create/remove/update program groups and shortcuts, via an eclipse install handler
JP6412276B2 (ja) 仮想マシン作成方法及び装置
CN104834541B (zh) 功能模块挂载方法、挂载系统及更新挂载系统的方法
CN103365644A (zh) 一种扩展软件功能的方法及装置
US20070282801A1 (en) Dynamically creating and executing an application lifecycle management operation
CN105302563A (zh) 移动应用服务的插件化方法及系统
CN103036678A (zh) 一种Symbian签名应用认证的方法和系统
CN103617058B (zh) 基于qnx的应用软件安装、卸载系统及方法
KR102052776B1 (ko) 병행가능하고 신뢰성 있는 설치를 위한 설치 엔진 및 패키지 포맷
CN103761107A (zh) 软件包定制的装置及方法
CN112286504A (zh) 移动APP中基于ReactNative实现小程序开发并加载的方法
CN111079125A (zh) 一种应用程序调用第三方库动态提升权限的方法及装置
US20110321030A1 (en) Method and apparatus for updating a software image
CN107391178B (zh) 一种终端安装包部署和实现方法与装置
CN108351790A (zh) 用于期望状态配置的非单调最终收敛
CN109857374B (zh) 移动应用的开发方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant