掌桥专利:专业的专利平台
掌桥专利
首页

软件部署方法和装置、计算机可读存储介质、电子设备

文献发布时间:2023-06-19 12:24:27


软件部署方法和装置、计算机可读存储介质、电子设备

技术领域

本公开实施例涉及计算机技术领域,具体而言,涉及一种软件部署方法、软件部署装置、计算机可读存储介质以及电子设备。

背景技术

互联网软件的开发和发布有一套标准的流程,其中,最重要的是持续集成,持续集成可以让软件快速迭代,同时还可以保持软件的高质量,这意味着开发人员需要对代码反复迭代,并将变更后的代码交付给质量保证部门,质量保证部门的人员需要对每次更新后的代码进行打包安装并进行成测试,以确保软件的质量。

当测试人员将更新后的代码部署在PC端,并对更新后的代码进行测试时,首先登陆构建网站获取安装包地址,下载安装包,退出正在测试的程序,对下载的安装包进行安装,待安装包安装完成后重新启动程序进行测试。

上述测试人员在PC端进行测试的方法,步骤繁多,且大多是机械化的重复操作,导致从开发人员提交代码到测试人员获得最新版本的时间过长,导致测试效率低下。

因此,需要提供一种新的软件部署方法。

需要说明的是,在上述背景技术部分发明的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

本公开的目的在于提供一种软件部署方法、软件部署装置、计算机可读存储介质以及电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的由于PC端软件部署效率低造成的测试效率低的问题。

根据本公开的一个方面,提供一种软件部署方法,应用于PC端,包括:

向服务器发送目标软件的最新版本信息的查询请求,并接收所述服务器发送的所述目标软件的最新版本信息;

在确定所述PC端不包括所述目标软件的最新版本信息时,根据所述最新版本信息中包括的下载地址对与所述最新版本信息对应的第一免安装软件包进行下载;

通过所述第一免安装软件包启动最新版本的所述目标软件,以实现对所述目标软件的部署。

在本公开的一种示例性实施例中,向服务器发送目标软件的最新版本信息的查询请求,并接收所述服务器发送的所述目标软件的最新版本信息,包括:

获取所述目标软件的主程序可执行文件,通过所述主程序可执行文件启动所述目标软件;

获取所述服务器的持久性连接的接口,通过所述持久性连接的接口将与目标软件对应的最新版本的查询请求发送至所述服务端;

通过所述持久性连接的接口接收所述服务端发送的所述目标软件的最新版本信息。

在本公开的一种示例性实施例中,在接收所述服务器发送的所述目标软件的最新版本信息之后,所述软件部署方法还包括:

确定所述PC端中包括的所述目标软件的更新目录,其中,所述更新目录用于存放所述目标软件的版本信息以及与所述版本信息对应的免安装软件包;

在确定所述更新目录中包括所述目标软件的最新版本信息时,获取所述更新目录中包括的所述目标软件的非最新版本信息,以及与所述非最新版本信息对应的第二免安装软件包所在的文件夹的目录;

删除所述第二免安装软件包所在的文件夹的目录。

在本公开的一种示例性实施例中,在根据所述最新版本信息中包括的下载地址对与所述最新版本信息对应的第一免安装软件包进行下载之后,所述软件部署方法还包括:

在所述更新目录中生成与所述第一免安装软件包对应的文件夹,对所述第一免安装软件包进行解压,并将解压后的第一免安装软件包存放在至述文件夹;

对所述更新目录中包括的版本号记录文件进行更新;

获取所述更新目录中包括的所述目标软件的非最新版本信息,以及与所述非最新版本信息对应的所述第二免安装软件包所在的文件夹的目录,删除所述第二免安装软件包所在的文件夹的目录;

退出所述目标软件的主程序可执行文件。

在本公开的一种示例性实施例中,通过所述第一免安装软件包启动最新版本的所述目标软件,包括:

获取更新目录中包括的与所述第一免安装软件包对应的执行程序可执行文件,启动所述执行程序可执行文件;

获取所述更新目录中包括的版本号记录文件,对所述版本号记录文件进行解析,得到所述版本号记录文件中包括的所述目标软件的最新版本信息;

根据获取到的所述目标软件的最新版本信息,确定所述更新目录中包括的与所述最新版本信息对应的所述第一免安装软件包;

通过与所述第一免安装软件包对应的所述主程序可执行文件,启动最新版本的所述目标软件。

在本公开的一种示例性实施例中,在获取所述更新目录中包括的版本号记录文件,对所述版本号记录文件进行解析,得到所述版本号记录文件中包括的所述目标软件的最新版本信息之后,所述软件部署方法还包括:

当所述更新目录中不存在与所述最新版本信息对应的所示第一免安装软件包时,确定所述PC端中包括的所述目标软件的安装目录;

获取所述安装目录中包括的所述目标软件的主程序可执行文件,通过所述主程序可执行文件,启动所述目标软件。

根据本公开的一个方面,提供一种软件部署方法,应用于服务端,包括:

从源码仓库中获取与目标软件对应的最新的源码,对所述最新的源码进行打包处理,生成与所述最新的源码对应的免安装软件包;

建立持久性连接的接口,通过所述持久性连接的接口接收PC端发送的目标软件的最新版本信息的查询请求,并确定与所述查询请求对应的第一免安装软件包;

将与所述第一免安装软件包对应的最新版本信息通过所述持久性连接的接口发送至所述PC端,以使得所述PC端根据接收到的所述最新版本信息对所述目标软件进行更新,并将更新后的目标软件部署在所述PC端。

根据本公开的一个方面,提供一种软件部署装置,应用于PC端,包括:

最新版本信息获取模块,用于向服务器发送目标软件的最新版本信息的查询请求,并接收所述服务器发送的所述目标软件的最新版本信息;

免安装软件包下载模块,用于在确定所述PC端不包括所述目标软件的最新版本信息时,根据所述最新版本信息中包括的下载地址对与所述最新版本信息对应的第一免安装软件包进行下载;

目标软件启动模块,用于通过所述第一免安装软件包启动最新版本的所述目标软件,以实现对所述目标软件的部署。

根据本公开的一个方面,提供一种软件部署装置,应用于服务端,包括:

软件包生成模块,用于从源码仓库中获取与目标软件对应的最新的源码,对所述最新的源码进行打包处理,生成与所述最新的源码对应的免安装软件包;

查询请求接收模块,用于建立持久性连接的接口,通过所述持久性连接的接口接收PC端发送的目标软件的最新版本信息的查询请求,并确定与所述查询请求对应的第一免安装软件包;

最新版本信息发送模块,用于将与所述第一免安装软件包对应的最新版本信息通过所述持久性连接的接口发送至所述PC端,以使得所述PC端根据接收到的所述最新版本信息对所述目标软件进行更新,并将更新后的目标软件部署在所述PC端。

根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一示例性实施例所述的软件部署方法。

根据本公开的一个方面,提供一种电子设备,包括:

处理器;以及

存储器,用于存储所述处理器的可执行指令;

其中,所述处理器配置为经由执行所述可执行指令来执行上述任一示例性实施例所述的软件部署方法。

本发明实施例提供的一种软件部署方法,一方面,向服务器发送目标软件的最新版本信息的查询请求,并接收所述服务器发送的所述目标软件的最新版本信息;在确定所述PC端不包括所述目标软件的最新版本信息时,根据所述最新版本信息中包括的下载地址对与所述最新版本信息对应的第一免安装软件包进行下载;通过所述第一免安装软件包启动最新版本的所述目标软件,以实现对所述目标软件的部署,由于目标软件启动后,向服务器发送查询请求,并接受服务端发送的目标软件的最新版本信息,当PC端不存在目标软件的版本信息时,根据最新版本信息中的下载地址对最新版本信息的免安装软件包进行下载,并通过该免安装软件包启动最新版本的目标软件,解决了现有技术中,因需要登陆构建网站获取最新版本的安装包地址,下载安装包,退出正在测试的程序并对下载的安装包进行安装而导致的目标软件部署步骤繁多的问题,提高了目标软件部署的效率;另一方面,由于可以将目标软件的最新版本快速部署到PC端,降低了从开发人员提交代码到测试人员获得最新版本的目标软件的时间,提高了测试人员对目标软件的测试效率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示意性示出根据本发明示例实施例的一种软件部署方法的流程图。

图2示意性示出根据本发明示例实施例的一种软件部署系统的框图。

图3示意性示出根据本发明示例实施例的一种PC端向服务端发送查询请求并接收服务端发送的目标软件的最新版本信息的方法流程图。

图4示意性示出根据本发明示例实施例的一种在PC端接收到服务器发送的目标软件的最新版本信息之后软件部署方法的流程图。

图5示意性示出根据本发明示例实施例的一种更新目录的场景示意图。

图6示意性示出根据本发明示例实施例的一种对目标软件的最新版本的第一免安装软件包下载之后的软件部署方法的流程图。

图7示意性示出根据本发明示例实施例的一种通过第一免安装软件包启动最新版本的目标软件的方法流程图。

图8示意性示出根据本发明示例实施例的一种得到版本号记录文件中包括的目标软件的最新版本信息之后软件部署方法的流程图。

图9示意性示出根据本发明示例实施例的又一种软件部署方法的流程图。

图10示意性示出根据本发明示例实施例的再一种软件部署方法的流程图。

图11示意性示出根据本发明示例实施例的一种软件部署装置的框图。

图12示意性示出根据本发明示例实施例的又一种软件部署装置的框图。

图13示意性示出根据本发明示例实施例的用于实现上述软件部署方法的电子设备。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本发明的各方面变得模糊。

此外,附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

在目标软件的迭代式开发,可以保证目标软件的持续集成,目标软件的持续集成意味着开发人员需要对目标软件的代码进行反复迭代,并将更新后的代码交付给质量保证部门,质量保证部门的人员需要对每次更新后的目标软件的代码进行打包、安装以及测试,以保证目标软件的质量。当测试人员在web侧对更新后的目标软件进行测试时,当开发人员提交更新后的目标软件的代码时,测试人员刷新页面,即可得到最新版本的目标软件,并基于得到的最新版本的目标软件进行回归测试;但是,当测试人员基于PC端对更新后的目标软件进行测试时,首先,需要登录构建网站获取最新版本的目标软件的安装包地址,并对该安装包进行下载;然后,退出PC端正在测试的程序,对最新版本的目标软件的安装包进行安装,待该安装包安装完成后,重新启动目标软件,以完成对目标软件的测试。基于PC端对目标软件进行测试,一方面,步骤繁多,且多是机械化的重复操作,导致开发人员提交目标软件的更新代码到测试人员获得最新版本的目标软件的时间较长,导致PC端测试人员的测试效率较低;另一方面,通过人工的方式获取最新版本的安装包,导致大量测试人员的进行测试的目标软件的版本属于旧版本,降低了最新版本的目标软件的部署效率,同时也不利于PC端测试人员测试工作的进行。

基于上述一个或者多个问题,本示例实施方式中首先提供了一种软件部署方法,该方法可以运行于设备终端,该设备终端可以包括台式计算机、便携式计算机、智能手机和平板电脑等等;当然,本领域技术人员也可以根据需求在其他平台运行本发明的方法,本示例性实施例中对此不做特殊限定。参考图1所示,该软件部署方法可以包括以下步骤:

步骤S110.向服务器发送目标软件的最新版本信息的查询请求,并接收所述服务器发送的所述目标软件的最新版本信息;

步骤S120.在确定所述PC端不包括所述目标软件的最新版本信息时,根据所述最新版本信息中包括的下载地址对与所述最新版本信息对应的第一免安装软件包进行下载;

步骤S130.通过所述第一免安装软件包启动最新版本的所述目标软件,以实现对所述目标软件的部署。

上述软件部署方法,一方面,向服务器发送目标软件的最新版本信息的查询请求,并接收所述服务器发送的所述目标软件的最新版本信息;在确定所述PC端不包括所述目标软件的最新版本信息时,根据所述最新版本信息中包括的下载地址对与所述最新版本信息对应的第一免安装软件包进行下载;通过所述第一免安装软件包启动最新版本的所述目标软件,以实现对所述目标软件的部署,由于目标软件启动后,向服务器发送查询请求,并接受服务端发送的目标软件的最新版本信息,当PC端不存在目标软件的版本信息时,根据最新版本信息中的下载地址对最新版本信息的免安装软件包进行下载,并通过该免安装软件包启动最新版本的目标软件,解决了现有技术中,因需要登陆构建网站获取最新版本的安装包地址,下载安装包,退出正在测试的程序并对下载的安装包进行安装而导致的目标软件部署步骤繁多的问题,提高了目标软件部署的效率;另一方面,由于可以将目标软件的最新版本快速部署到PC端,降低了从开发人员提交代码到测试人员获得最新版本的目标软件的时间,提高了测试人员对目标软件的测试效率。

以下,对本公开示例实施例的软件部署方法中涉及的各步骤进行详细的解释以及说明。

首先,对本公开示例实施例的应用场景以及发明目的进行解释以及说明。具体的,本公开示例实施例可以应用于测试人员基于PC端对目标软件的最新版本进行获取以及测试,主要当目标软件启动时,主动获取目标软件的最新版本信息,根据获取到的最新版本信息对目标软件进行更新,提高了目标软件部署在PC端的部署效率。

本公开示例实施例以PC端发送的目标软件的最新版本信息的查询请求为基础,通过该查询请求获取与该查询请求对应的目标软件的最新版本信息,当测试人员的PC端不存在目标软件的最新版本信息时,根据最新版本信息中的下载地址下载最新版本的目标软件的免安装软件包,提高了PC端目标软件的部署效率。具体理由如下:一方面,当启动目标软件之后,自动向服务端发送目标软件的最新版本信息的查询请求,当PC端不存在目标软件的最新版本的安装包时,自动下载该安装包,而不是通过人工的方式获取最新版本的安装包,提高了最新版本的目标软件的部署效率;另一方面,当PC端不存在最新版本的目标软件时,根据最新版本信息中的下载地址下载最新版本的目标软件的免安装软件包,通过该免安装软件包可以直接启动目标软件,以使得测试人员对目标软件进行测试,提高了PC端测试人员对目标软件的测试效率。

其次,对本公开示例实施例中涉及到的软件部署系统进行解释以及说明。参考图2所示,该软件部署系统可以包括PC端210、服务端220以及源码仓库230,其中,PC端210可以包括:免安装软件包下载模块211、目标软件测试模块212;服务端220可以包括:免安装软件包生成模块221以及目标软件更新通知模块222。其中,目标软件部署在PC端210中,免安装软件包下载模块211,用于当PC端中的目标软件启动时,生成目标软件最新版本信息的查询请求,将该查询请求发送至服务端220,接收服务端220发送的目标软件的最新版本信息,根据接收到的目标软件的最新版本信息判断PC端中是否包括最新版本信息的目标软件,当不存在时,根据接收到的目标软件的最新版本信息中的下载地址,对最新版本的目标软件的免安装软件包进行下载;目标软件测试模块212,与免安装软件包下载模块211网络连接,用于通过目标软件的最新版本的免安装软件包对目标软件进行启动,以使得PC端的测试人员对最新版的目标软件进行测试;服务端220,与PC端210网络连接,用于根据接收到的PC端的查询请求,对PC端的目标软件的最新版本信息进行查询,并将查询结果通过持久性连接的接口发送至发送该查询请求的客户端;免安装软件包生成模块221,用于从源码仓库230中获取开发者提交的目标软件的最新版本的源码,并对获取到的源码进行打包处理,得到最新版本的目标软件的免安装软件包;目标软件更新通知模块222,与免安装软件包生成模块221网络连接,用于当免安装软件包生成模块221生成目标软件的最新版本的免安装软件包时,通过服务端的持久性连接的接口将与最新版本的免安装软件包对应的最新版本信息发送至对应的PC端,以使得PC端根据接收到的最新版本信息对目标软件进行更新;源码仓库230与服务端220网络连接,用于存储开发者提交的目标软件的最新版本的源码。

以下,将结合图2对步骤S110-步骤S130进行详细的解释以及说明。

在步骤S110中,向服务器发送目标软件的最新版本信息的查询请求,并接收所述服务器发送的所述目标软件的最新版本信息。

在本示例实施例中,PC端通过其与客户端之间的持久性连接的接口将查询请求发送可服务端,其中,持久性连接的接口可以为基于http(Hypertext Transfer Protocol,超文本传输协议)的接口,也可以为基于websocket(基于TCP的全双工通信协议)的接口,在本示例实施例中不做具体限定;服务端发送的目标软件的最新版本信息中可以包括目标软件的最新版本号、最新版本的免安装软件包的下载地址,还可以包括最新版本的目标软件运行时运行包的MD5(MD5 Message-Digest Algorithm,消息摘要算法),其中,MD5用于目标软件运行时的校验,在本示例实施例中对最新版本信息中包括的内容不做具体限定。

在本示例实施例中,参考图3所示,向服务器发送目标软件的最新版本信息的查询请求,并接收所述服务器发送的所述目标软件的最新版本信息,可以包括步骤S310-步骤S330:

步骤S310.获取所述目标软件的主程序可执行文件,通过所述主程序可执行文件启动所述目标软件;

步骤S320.获取所述服务器的持久性连接的接口,通过所述持久性连接的接口将与目标软件对应的最新版本的查询请求发送至所述服务端;

步骤S330.通过所述持久性连接的接口接收所述服务端发送的所述目标软件的最新版本信息。

以下,将对步骤S310-步骤S330进行解释以及说明。具体的,首先,获取目标软件在PC端中的主程序可执行文件,通过作用于该主程序可执行文件的触发操作,启动PC端中的目标软件;然后,当目标软件启动后,目标软件向服务端发送该目标软件最新版本信息的查询请求,服务端根据查询请求在其保存的配置文件中进行查找,得到与PC端的查询请求对应的目标软件的最新版本信息,并将该最新版本信息通过持久性连接的接口发送至PC端;最后,PC端接收服务端通过持久性连接的接口发送的目标软件的最新版本信息。其中,查询请求中可以包括目标软件的唯一标识,也可以包括目标软件的当前版本信息,在本示例实施例中对查询请求中包括的内容不做具体限定;服务端维持目标软件的版本信息的配置文件,该配置文件用于记录目标软件的最新版本信息,当服务端构建出目标软件的最新版本后,服务端自动对该配置文件进行更新。

当PC端接收到服务端发送的目标软件的最新版本信息之后,PC端还需要判断其更新目录中是否存在目标软件的最新版本信息,参考图4所示,在PC端接收到服务器发送的目标软件的最新版本信息之后,软件部署方法还可以包括步骤S410-步骤S430:

步骤S410.确定所述PC端中包括的所述目标软件的更新目录,其中,所述更新目录用于存放所述目标软件的版本信息以及与所述版本信息对应的免安装软件包;

步骤S420.在确定所述更新目录中包括所述目标软件的最新版本信息时,获取所述更新目录中包括的所述目标软件的非最新版本信息,以及与所述非最新版本信息对应的第二免安装软件包所在的文件夹的目录;

步骤S430.删除所述第二免安装软件包所在的文件夹的目录。

以下,将对步骤S410-步骤S430进行解释以及说明。具体的,当PC端接收到服务端发送的目标软件的最新版本信息之后,首先,PC端确定目标软件的更新目录,其中,该更新目录用于存放目标软件的版本信息以及目标软件的免安装软件包,在更新目录中可以通过版本号记录文件记录目标软件的最新版本信息;然后,在目标软件的更新目录中确定是否存在与接收到的目标软件的最新版本信息一致的目标软件的版本信息,即,更新目录中是否存在与目标软件的最新版本信息中的最新版本号一致的文件夹,当更新目录中存在时,说明目标软件的当前版本已经为最新版本,不需要对该目标软件的当前版本进行更新,此时,可以对更新目录中包括的目标软件的旧版本进行清理,具体为:获取更新目录中包括的目标软件的非最新版本信息,以及与非最新版本信息对应的第二免安装软件包所在的文件夹的目录;最后,删除第二免安装软件包所在的文件夹的目录。其中,参考图5所示的更新目录的示意图,其中,可以包括多个文件夹,即,多个子目录,以及目标软件的版本号记录文件,每个文件夹以目标软件的版本号进行命名,文件夹中可以包括目标软件的免安装软件包,免安装软件包解压之后可以包括目标软件的主程序可执行文件、主程序的动态链接库文件、目标软件的更新可执行文件以及目标软件的执行程序可执行文件;主程序可执行文件可以用app.exe表示、主程序的动态链接库文件可以用app.dll表示、目标软件的更新可执行文件可以用update.exe表示以及目标软件的执行程序可执行文件可以用start.exe表示,目标软件的版本号记录文件可以用version.txt表示,在本示例实施例中对更新目录中第一免安装软件包中包括的任一文件的命名以及目标软件的版本号记录文件的命名不做具体限定;版本号记录文件用于记录目标软件的最新版本信息,可以记录目标软件的最新版本号。

举例而言,参考图5所示,当接收到的服务端发送的目标软件的最新版本号为102时,首先,PC端确定目标软件的更新目录,并根据接收到的目标软件的最新版本号在更新目录中查找是否存在以最新版本号命名的文件夹,即,确定是否存在以102命名的文件夹,当更新目录中存在以102命名的文件夹时,删除更新目录中包括的不是以102命名的文件夹。

在步骤S102中,在确定所述PC端不包括所述目标软件的最新版本信息时,根据所述最新版本信息中包括的下载地址对与所述最新版本信息对应的第一免安装软件包进行下载。

在本示例实施例中,当接收到服务端发送的目标软件的最新版本信息后,确定PC端的更新目录中不存在与该最新版本信息对应的文件夹时,即,目标软件的当前版本落后于最新版本时,需要对目标软件进行更新,在进行更新时,可以根据接收到的服务端发送的最新版本信息中包括的目标软件的最新版本的免安装软件包的下载地址对目标软件的第一免安装软件包进行下载。

当对目标软件的最新版本的第一免安装软件包下载之后,参考图6所示,软件部署方法还可以包括步骤S610-步骤S640:

步骤S610.在所述更新目录中生成与所述第一免安装软件包对应的文件夹,对所述第一免安装软件包进行解压,并将解压后的第一免安装软件包存放至所述文件夹;

步骤S620.对所述更新目录中包括的版本号记录文件进行更新;

步骤S630.获取所述更新目录中包括的所述目标软件的非最新版本信息,以及与所述非最新版本信息对应的所述第二免安装软件包所在的文件夹的目录,删除所述第二免安装软件包所在的文件夹的目录;

步骤S640.退出所述目标软件的主程序可执行文件。

以下,将对步骤S610-步骤S640进行解释以及说明。具体的,当对目标软件的第一免安装软件包下载之后,首先,在更新目录中生成与第一免安装软件包对应的文件夹,对该第一免安装软件包进行解压,将解压得到的目标软件的主程序可执行文件、主程序的动态链接库文件、目标软件的更新可执行文件以及目标软件的执行程序可执行文件放置于与该第一免安装软件包对应的文件夹中;然后,对更新目录中包括的版本号记录文件中记录的目标软件的最新版本号进行更新;接着,获取更新目录中非最新版本的第二免安装软件包所在的文件夹的目录,并删除该目录;最后,退出目标软件的主程序可执行文件,即,完成了对目标软件的当前版本的更新,将目标软件的当前版本更新为最新版本。

举例而言,当目标软件的最新版本信息中的最新版本号为103,当下载得到,与目标软件的最新版本信息对应的第一免安装软件包时,首先,在更新目录中生成与最新版本信息中的最新版本号一致的文件夹,即,生成命名为103的文件夹;然后,对下载得到的第一免安装软件包进行解压,并将解压得到的目标软件的主程序可执行文件、主程序的动态链接库文件、目标软件的更新可执行文件以及目标软件的执行程序可执行文件放置于文件夹103中;最后,对更新目录中的版本号记录文件进行更新,将版本号记录文件中包括的目标软件的最新版本号修改为103,并且获取更新目录中包括的命名不是103的文件夹,并将其删除。

在步骤S130中,通过所述第一免安装软件包启动最新版本的所述目标软件,以实现对所述目标软件的部署。

当PC端下载得到目标软件的最新版本的第一免安装软件包时,通过触发该目标软件的执行程序可执行文件,以启动最新版本的目标软件,参考图7所示,通过第一免安装软件包启动最新版本的目标软件可以包括步骤S710-步骤S740:

步骤S710.获取更新目录中包括的与所述第一免安装软件包对应的执行程序可执行文件,启动所述执行程序可执行文件;

步骤S720.获取所述更新目录中包括的版本号记录文件,对所述版本号记录文件进行解析,得到所述版本号记录文件中包括的所述目标软件的最新版本信息;

步骤S730.根据获取到的所述目标软件的最新版本信息,确定所述更新目录中包括的与所述最新版本信息对应的所述第一免安装软件包;

步骤S740.通过与所述第一免安装软件包对应的所述主程序可执行文件,启动最新版本的所述目标软件。

以下,将对步骤S710-步骤S740进行解释以及说明。具体的,当PC端下载得到目标软件的第一免安装软件包时,首先,在PC端中获取目标软件的更新目录,以及更新目录中包括的目标软件的执行程序可执行文件,测试人员可以通过启动目标软件的执行程序可执行文件查找目标软件的最新版本,也可以启动目标软件的桌面快捷方式查找目标软件的最新版本,在本示例实施例中对查找目标软件最新版本的方式不做具体限定;其中,安装目录为测试人员在PC端安装目标软件时生成的目录,在生成安装目录时通常会生成目标软件的桌面快捷方式,安装目录中可以包括目标软件的主程序可执行文件、主程序的动态链接库文件、目标软件的更新可执行文件以及目标软件的执行程序可执行文件;主程序可执行文件可以用app.exe表示、主程序的动态链接库文件可以用app.dll表示、目标软件的更新可执行文件可以用update.exe表示以及目标软件的执行程序可执行文件可以用start.exe表示,在本示例实施例中对安装目录中第一免安装软件包中包括的任一文件的命名不做具体限定;然后,当目标软件启动后,在目标软件的更新目录中获取目标软件的版本号记录文件,对版本号记录文件进行解析,得到版本号记录文件中记录的目标软件的最新版本号;当更新目录中不存在目标软件的版本号记录文件或者对版本号记录文件解析失败时,可以通过目标软件安装目录中包括的目标软件的主程序可执行文件,启动旧版本的目标软件;当解析得到目标软件的最新版本号之后,确定更新目录中是否存在与解析得到的最新版本号一致的第一免安装软件包,即,判断更新目录中是否存在与最新版本号一致的文件夹,当存在时,获取更新目录中包括的与最新版本号对应的第一免安装软件包中包括的目标软件的主程序可执行文件,通过该主程序可执行文件启动最新版本的目标软件,当启动最新版本的目标软件后,可以通过退出安装目录中包括的目标软件的执行程序可执行文件,来对目标软件进行退出。

进一步的,参考图8所示,对版本号记录文件进行解析,得到版本号记录文件中包括的目标软件的最新版本信息之后,软件部署方法还可以包括步骤S810以及步骤S820:

步骤S810.当所述更新目录中不存在与所述最新版本信息对应的所示第一免安装软件包时,确定所述PC端中包括的所述目标软件的安装目录;

步骤S820.获取所述安装目录中包括的所述目标软件的主程序可执行文件,通过所述主程序可执行文件,启动所述目标软件。

以下,将对步骤S810以及步骤S820进行解释以及说明。具体的,当更新目录中不存在与目标软件的最新版本号对应的第一免安装软件包时,获取安装目录中包括的目标软件的主程序可执行文件,通过启动安装目录中包括的目标软件的主程序可执行文件,启动旧版本的目标软件。举例而言,当对更新目录中的版本号记录文件进行解析,得到目标软件的最新版本号为103时,在更新目录中查找是否存在以103命名的文件夹,当更新目录中不存在以103命名的文件夹时,说明PC端的目标软件的当前版本不是最新版本,当需要启动当前版本的目标软件时,则获取该目标软件的安装目录中包括的主程序可执行文件,通过作用于该主程序可执行文件来启动当前版本的目标软件。

进一步的,当将PC端中的目标软件更新为与最新版本信息中的最新版本号一致的版本时,可以维持PC端与服务端之间的持久性连接的接口,当服务器中再次生成目标软件的最新版本时,可以将目标软件的最新版本信息通过该持久性连接的接口推送至PC端,以使得PC端可以根据上述步骤对目标软件的当前版本进行更新。

在本示例实施例中,在PC端进行测试时,可以在测试环境中增加目标软件的执行程序可执行文件以及目标软件的更新可执行文件,但是,当目标软件正式外放时,不需要打包目标软件的执行程序可执行文件以及目标软件的更新可执行文件。

进一步的,在本公开还提供了另一种软件部署方法,应用于服务端,参考图9所示,该软件部署方法可以包括步骤S910-步骤S930:

步骤S910.从源码仓库中获取与目标软件对应的最新的源码,对所述最新的源码进行打包处理,生成与所述最新的源码对应的免安装软件包;

步骤S920.建立持久性连接的接口,通过所述持久性连接的接口接收PC端发送的目标软件的最新版本信息的查询请求,并确定与所述查询请求对应的第一免安装软件包;

步骤S930.将与所述第一免安装软件包对应的最新版本信息通过所述持久性连接的接口发送至所述PC端,以使得所述PC端根据接收到的所述最新版本信息对所述目标软件进行更新,并将更新后的目标软件部署在所述PC端。

以下,将对步骤S910-步骤S930进行解释以及说明。具体的,当开发人员对目标软件进行更新,并将更新后的目标软件的源码上传至源码仓库后,首先,服务端从源码仓库中获取更新后的目标软件最新的源码,对获取到的源码进行打包生成目标软件的第一免安装软件包,在生成第一免安装软件包之后,服务端可以根据第一免安装软件包对应的最新版本信息对其维持的配置文件进行更新;其中,服务端可以通过构建网站手动触发构建目标软件的第一免安装软件包,服务端也可以通过执行打包脚本自动构建目标软件的第一免安装软件包,在本示例实施例中对生成第一免安装软件包的方式不做具体限定;第一免安装软件包为绿色安装包,即,将目标软件的所有文件打包为一个软件包,解压之后可以直接运行,无需用户安装;然后,服务端建立与PC端之间的持久性连接的接口,通过该接口接收PC端发送的目标软件的查询请求,并通过查询请求中包括的目标软件的唯一标识在其维持的配置文件中进行查找,得到目标软件的最新版本信息,并将该最新版本信息通过持久性连接的接口将目标软件的最新版本信息发送至PC端,以使得PC端接收到目标软件的最新版本信息之后对当前版本的目标软件进行更新;其中,持久性连接的接口可以为基于http(Hypertext Transfer Protocol,超文本传输协议)的接口,也可以为基于websocket(基于TCP的全双工通信协议)的接口,在本示例实施例中不做具体限定。

在本公开中通过使用免安装软件包,省去了现有技术中PC端的测试人员对目标软件进行测试时,需要退出正在测试的程序、安装新版本的软件以及等待软件安装完成的步骤,实现了目标软件安装的无感知,提高了测试效率。

进一步的,当服务端生成目标软件的第一免安装软件包时,服务端也可以通过持久性连接的接口将目标软件的最新版本信息推送至PC端,以使得PC端根据该最新版本信息对当前版本的目标软件进行更新。

本公开示例实施例提供的软件部署方法至少具有以下优点:一方面,当目标软件启动时,主动向服务端发送最新版本信息的查询请求,并根据服务端发送的目标软件的最新版本信息对目标软件进行更新,提高了目标软件更新的效率;另一方面,缩短了测试人员在PC端获取目标软件的最新版本的时间,提高了测试人员的测试效率。

以下,结合图10对本公开示例实施例的软件部署方法进行进一步的解释以及说明。其中,软件部署方法可以包括:

步骤S1002.服务端获取开发人员提交的目标软件的最新源码,对该源码进行打包处理,得到目标软件的第一免安装软件包;

步骤S1004.PC端通过更新目录中的主程序可执行文件启动后,服务端通过持久性连接的接口将与第一免安装软件包对应的最新版本信息发送至PC端;

步骤S1006.PC端根据最新版本信息中包括的目标软件的最新版本号确定更新目录中是否存在与最新版本号一致的第一免安装软件包;

步骤S1008.当存在时,获取更新目录中包括的非第一免安装软件包所在的文件夹,并删除该文件夹;

步骤S1010.当不存在时,根据最新版本信息中包括的下载地址,对第一免安装软件包进行下载,并对下载得到的第一免安装软件包进行解压;

步骤S1012.对更新目录中的版本号记录文件中记录的目标软件的最新版本号进行更新,并执行步骤S1008;

步骤S1014.退出更新目录中的主程序可执行文件;

步骤S1016.启动更新目录中的执行程序可执行文件,并对更新目录中的版本号记录文件进行解析;

步骤S1018.判断版本号记录文件是否解析成功;

步骤S1020.当解析不成功时,获取安装目录中的主程序可执行文件,启动目标软件;

步骤S1022.当成功时,得到目标软件的最新版本号;

步骤S1024.确定更新目录中是否存在与最新版本号一致的目标软件的第一免安装软件包;

步骤S1026.当存在时,通过更新目录中的主程序可执行文件启动目标软件;当不存在时,执行步骤S1020,以启动目标软件;

步骤S1028.退出更新目录中的执行程序可执行文件。

本公开示例实施例还提供了一种软件部署装置,参考图11所示,可以包括:最新版本信息获取模块1110、免安装软件包下载模块1120以及目标软件启动模块1130。其中:

最新版本信息获取模块,用于向服务器发送目标软件的最新版本信息的查询请求,并接收所述服务器发送的所述目标软件的最新版本信息;

免安装软件包下载模块,用于在确定所述PC端不包括所述目标软件的最新版本信息时,根据所述最新版本信息中包括的下载地址对与所述最新版本信息对应的第一免安装软件包进行下载;

目标软件启动模块,用于通过所述第一免安装软件包启动最新版本的所述目标软件,以实现对所述目标软件的部署。

本公开示例实施例还提供了一种软件部署装置,参考图12所示,可以包括:软件包生成模块1210、查询请求接收模块1220以及最新版本信息发送模块1230,其中:

软件包生成模块1210,用于从源码仓库中获取与目标软件对应的最新的源码,对所述最新的源码进行打包处理,生成与所述最新的源码对应的免安装软件包;

查询请求接收模块1220,用于建立持久性连接的接口,通过所述持久性连接的接口接收PC端发送的目标软件的最新版本信息的查询请求,并确定与所述查询请求对应的第一免安装软件包;

最新版本信息发送模块1230,用于将与所述第一免安装软件包对应的最新版本信息通过所述持久性连接的接口发送至所述PC端,以使得所述PC端根据接收到的所述最新版本信息对所述目标软件进行更新,并将更新后的目标软件部署在所述PC端。

上述软件部署装置中各模块的具体细节已经在对应的软件部署方法中进行了详细的描述,因此此处不再赘述。

在本公开的一种示例性实施例中,向服务器发送目标软件的最新版本信息的查询请求,并接收所述服务器发送的所述目标软件的最新版本信息,包括:

获取所述目标软件的主程序可执行文件,通过所述主程序可执行文件启动所述目标软件;

获取所述服务器的持久性连接的接口,通过所述持久性连接的接口将与目标软件对应的最新版本的查询请求发送至所述服务端;

通过所述持久性连接的接口接收所述服务端发送的所述目标软件的最新版本信息。

在本公开的一种示例性实施例中,在接收所述服务器发送的所述目标软件的最新版本信息之后,所述软件部署方法还包括:

确定所述PC端中包括的所述目标软件的更新目录,其中,所述更新目录用于存放所述目标软件的版本信息以及与所述版本信息对应的免安装软件包;

在确定所述更新目录中包括所述目标软件的最新版本信息时,获取所述更新目录中包括的所述目标软件的非最新版本信息,以及与所述非最新版本信息对应的第二免安装软件包所在的文件夹的目录;

删除所述第二免安装软件包所在的文件夹的目录。

在本公开的一种示例性实施例中,在根据所述最新版本信息中包括的下载地址对与所述最新版本信息对应的第一免安装软件包进行下载之后,所述软件部署方法还包括:

在所述更新目录中生成与所述第一免安装软件包对应的文件夹,对所述第一免安装软件包进行解压,并将解压后的第一免安装软件包存放在至述文件夹;

对所述更新目录中包括的版本号记录文件进行更新;

获取所述更新目录中包括的所述目标软件的非最新版本信息,以及与所述非最新版本信息对应的所述第二免安装软件包所在的文件夹的目录,删除所述第二免安装软件包所在的文件夹的目录;

退出所述目标软件的主程序可执行文件。

在本公开的一种示例性实施例中,通过所述第一免安装软件包启动最新版本的所述目标软件,包括:

获取更新目录中包括的与所述第一免安装软件包对应的执行程序可执行文件,启动所述执行程序可执行文件;

获取所述更新目录中包括的版本号记录文件,对所述版本号记录文件进行解析,得到所述版本号记录文件中包括的所述目标软件的最新版本信息;

根据获取到的所述目标软件的最新版本信息,确定所述更新目录中包括的与所述最新版本信息对应的所述第一免安装软件包;

通过与所述第一免安装软件包对应的所述主程序可执行文件,启动最新版本的所述目标软件。

在本公开的一种示例性实施例中,在获取所述更新目录中包括的版本号记录文件,对所述版本号记录文件进行解析,得到所述版本号记录文件中包括的所述目标软件的最新版本信息之后,所述软件部署方法还包括:

当所述更新目录中不存在与所述最新版本信息对应的所示第一免安装软件包时,确定所述PC端中包括的所述目标软件的安装目录;

获取所述安装目录中包括的所述目标软件的主程序可执行文件,通过所述主程序可执行文件,启动所述目标软件。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

此外,尽管在附图中以特定顺序描述了本发明中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。

在本发明的示例性实施例中,还提供了一种能够实现上述方法的电子设备。

所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

下面参照图13来描述根据本发明的这种实施方式的电子设备1300。图13显示的电子设备1300仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图13所示,电子设备1300以通用计算设备的形式表现。电子设备1300的组件可以包括但不限于:上述至少一个处理单元1310、上述至少一个存储单元1320、连接不同系统组件(包括存储单元1320和处理单元1310)的总线1330以及显示单元1340。

其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1310执行,使得所述处理单元1310执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元1310可以执行如图1中所示的步骤S110:向服务器发送目标软件的最新版本信息的查询请求,并接收所述服务器发送的所述目标软件的最新版本信息;S120:在确定所述PC端不包括所述目标软件的最新版本信息时,根据所述最新版本信息中包括的下载地址对与所述最新版本信息对应的第一免安装软件包进行下载;S130:通过所述第一免安装软件包启动最新版本的所述目标软件,以实现对所述目标软件的部署。

存储单元1320可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)13201和/或高速缓存存储单元13202,还可以进一步包括只读存储单元(ROM)13203。

存储单元1320还可以包括具有一组(至少一个)程序模块13205的程序/实用工具13204,这样的程序模块13205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线1330可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备1300也可以与一个或多个外部设备1400(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1300交互的设备通信,和/或与使得该电子设备1300能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1350进行。并且,电子设备1300还可以通过网络适配器1360与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1360通过总线1330与电子设备1300的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1300使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本发明实施方式的方法。

在本发明的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。

根据本发明的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。

本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本发明的其他实施例。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由权利要求指出。

相关技术
  • 软件部署方法和装置、计算机可读存储介质、电子设备
  • 软件部署方法、装置以及计算机可读存储介质
技术分类

06120113284336