CN101546269B - 可执行文件版本更新系统及方法 - Google Patents
可执行文件版本更新系统及方法 Download PDFInfo
- Publication number
- CN101546269B CN101546269B CN 200810300769 CN200810300769A CN101546269B CN 101546269 B CN101546269 B CN 101546269B CN 200810300769 CN200810300769 CN 200810300769 CN 200810300769 A CN200810300769 A CN 200810300769A CN 101546269 B CN101546269 B CN 101546269B
- Authority
- CN
- China
- Prior art keywords
- executable file
- source code
- server
- compiling
- attribute information
- 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.)
- Expired - Fee Related
Links
Images
Abstract
一种可执行文件版本更新方法,其特征在于,该方法包括如下步骤:设置源代码编译的时间;读取源代码中的属性信息及可执行文件中的属性信息;当源代码中的属性信息及可执行文件中的属性信息不一致时,在设置的时间对源代码进行编译,使其成为可执行文件;当源代码编译成功时,更新服务器上的可执行文件,使其与编译成功的可执行文件一致;修改编译成功后所生成的可执行文件的版本号;当启动客户端计算机的可执行文件时,读取服务器中对应的可执行文件的版本号;当客户端计算机上启动的可执行文件的版本号与服务器上对应的可执行文件的版本号一致时,将服务器上的可执行文件更新到客户端计算机上。另外,本发明还提供一种可执行文件版本更新系统。
Description
技术领域
本发明涉及一种可执行文件版本更新系统及方法。
背景技术
在C/S(客户端/服务器)模式下,应用系统的结构层次关系体现为两层,即第一层是安装在客户端的可执行文件,第二层是通过网络结合的服务器。其特点是数据的交互性能强大,并提供了更为安全的存取模式。
但是,由于C/S模式是应用程序在多个客户端运行,当系统需要功能扩充、修改等需求异动时,需要对应用系统的代码重新编译,再将编译好的可执行文件逐个复制到客户端重新安装,如此浪费人力工时,亦不能保证系统功能的同步,且若用户在某一个时间同时复制,会造成服务器拥挤,甚至导致服务器瘫痪。
发明内容
鉴于以上内容,有必要提供一种可执行文件版本更新系统,其可以在客户端启动对应的可执行文件之后自动将服务器上最新版本的可执行文件更新到客户端。
此外,还有必要提供一种可执行文件版本更新方法,其可以在客户端启动对应的可执行文件之后自动将服务器上最新版本的可执行文件更新到客户端。
一种可执行文件版本更新系统,包括服务器、客户端计算机,所述服务器包括:设置模块,用于当用户将需要生成可执行文件的源代码存放于服务器时,设置该源代码的编译时间;读取模块,用于读取所述源代码中的属性信息及服务器中存放该源代码对应的可执行文件的属性信息;判断模块,用于判断读取的源代码中的属性信息与服务器中存放该源代码对应的可执行文件的属性信息是否一致;编译模块,用于当源代码中的属性信息及可执行文件中的属性信息不一致时,在设置的编译时间对该源代码进行编译,使其成为可执行文件,所述编译的方式包括对新增加的功能所编写的源代码进行编译的增量编译及对所编写的源代码全部进行编译的完全编译;更新模块,用于当源代码编译成功时,更新服务器上的可执行文件,若编译的方式为增量编译,则将编译成功后生成的可执行文件覆盖该源代码对应的可执行文件,若编译的方式为完全编译,则将编译成功后生成的可执行文件存放在服务器用于存放可执行文件的目录下,使其与编译成功的可执行文件一致;修改模块,用于修改编译成功后所生成的可执行文件的版本号;所述客户端计算机包括:获取模块,用于当启动客户端计算机的可执行文件时,获取服务器中对应的可执行文件的版本号;比较模块,用于比较客户端计算机上启动的可执行文件的版本号与服务器上对应的可执行文件的版本号是否一致;下载模块,用于当客户端计算机上启动的可执行文件的版本号与服务器上对应的可执行文件的版本号不一致时,将服务器上的可执行文件下载到客户端计算机上,并安装该可执行文件。
一种可执行文件版本更新方法,该方法包括如下步骤:当用户将需要生成可执行文件的源代码存放于服务器时,设置该源代码的编译时间;读取所述源代码中的属性信息及服务器中存放该源代码对应的可执行文件的属性信息;当源代码中的属性信息与服务器中存放该源代码对应的可执行文件的属性信息不一致时,在设置的时间对源代码进行编译,使其成为可执行文件,所述编译的方式包括对新增加的功能所编写的源代码进行编译的增量编译及对所编写的源代码全部进行编译的完全编译;当源代码编译成功时,更新服务器上的可执行文件,若编译的方式为增量编译,则将编译成功后生成的可执行文件覆盖该源代码对应的可执行文件,若编译的方式为完全编译,则将编译成功后生成的可执行文件存放在服务器用于存放可执行文件的目录下,使其与编译成功的可执行文件一致;修改编译成功后所生成的可执行文件的版本号;当启动客户端计算机的可执行文件时,读取服务器中对应的可执行文件的版本号;当客户端计算机上启动的可执行文件的版本号与服务器上对应的可执行文件的版本号不一致时,将服务器上的可执行文件下载到客户端计算机上,并安装该可执行文件。
相较于现有技术,其可以在客户端启动对应的可执行文件之后自动将服务器上最新版本的可执行文件更新到客户端,避免了人为的更新可执行文件,提高了效率,节约了服务器资源。
附图说明
图1是本发明可执行文件版本更新系统的较佳实施例的硬件框架图。
图2是本发明可执行文件版本更新系统较佳实施例的功能模块图。
图3是本发明可执行文件版本更新方法较佳实施例的流程图。
具体实施方式
如图1所示,是本发明一种可执行文件版本更新系统较佳实施例的硬件架构图。该系统包括客户端计算机10、网络20及服务器30。该服务器30可以是个人计算机、网络服务器,还可以是任意其它适用的计算机。
此外,该服务器30通过网络20与至少一客户端计算机10相连,该客户端计算机10用于提供一个互动式界面给用户,便于用户进行操作并在操作过程中将服务器30中最新的可执行文件版本更新到客户端计算机10中。所述网络20可以是互联网、局域网或者无线通讯网络。
如图2所示,是本发明可执行文件版本更新系统较佳实施例的功能模块图。所述服务器30包括设置模块301、读取模块302、判断模块303、编译模块304、更新模块305、修改模块306及写入模块307。所述客户端计算机10包括读取模块101、比较模块102及下载模块103。本发明所称的模块是完成一特定功能的计算机程序段,比程序更适合于描述软件在计算机中的执行过程,因此在本发明以下对软件描述中都以模块描述。
所述设置模块301用于当用户将需要生成可执行文件的源代码存放于服务器时,设置该源代码的编译时间。用户可以根据需要在任意时间进行设置,通常为减轻服务器30的负载,提高服务器30的处理效率,将编译时间设置在服务器30数据处理任务较少的时候。
所述读取模块302用于读取所述源代码中的属性信息及服务器30中存放该源代码对应的可执行文件的属性信息。所述的属性信息包括编写日期、修改日期及作者等资料。若服务器30中存放该源代码对应的可执行文件不存在,则可执行文件的属性信息为空。
所述判断模块303用于判断读取的源代码中的属性信息与服务器30中存放该源代码对应的可执行文件的属性信息是否一致。
所述编译模块304用于当源代码中的属性信息及服务器30中存放该源代码对应的可执行文件的属性信息不一致时,在设置的编译时间对源代码进行编译,使其成为可执行文件。在本较佳实施例中,编译的方式有两种,一种为增量编译,即:只对新增加的功能所编写的源代码进行编译,另一种为完全编译,即:对所编写的源代码全部进行编译。通常判断使用哪一种编译的方式是在存放可执行文件的目录下查找是否存在对应的可执行文件,若存在对应的可执行文件,则为增量编译,若不存在对应的可执行文件,则为完全编译。
所述更新模块305用于当源代码编译成功时,更新服务器上的可执行文件,使其与编译成功的可执行文件一致。根据对源代码的编译方式的不同,更新的方式有两种,若编译的方式为增量编译,则将编译成功后生成的可执行文件覆盖该源代码对应的可执行文件,若编译的方式为完全编译,则将编译成功后生成的可执行文件存放在服务器30用于存放可执行文件的目录下。
所述修改模块306用于修改编译成功后所生成的可执行文件的版本号。在本较佳实施例中,修改的方式为,若编译成功一次,则对版本号递增一个数字,具体而言,假设原有的可执行文件的版本号文1.1,若编译成功,生成新的可执行文件,则将版本号修改为1.2。然而,视不同情况,在其他实施例中,用户可以设定其它方式修改版本号,例如,以递减的方式修改版本号。
所述写入模块307用于当源代码编译失败时,将异常报告写入日志文件,并通知管理员。在本较佳实施例中,通知的方式是以邮件的形式通知管理员。
所述获取模块101用于当启动客户端计算机10的可执行文件时,获取服务器30中对应的可执行文件的版本号。通常在客户端计算机安装好的可执行文件都有对应的图标,用户点击该图标就会启动对应的可执行文件,之后获取模块101自动获取服务器30上的该可执行文件的版本号。具体而言,假设用户需要使用某一个软件(例如:浏览器),点击浏览器图标,启动浏览器对应的可执行文件,之后客户端计算机10自动获取取服务器30上浏览器对应的可执行文件的版本号。
所述比较模块102用于比较客户端计算机10上启动的可执行文件的版本号与服务器30上对应的可执行文件的版本号是否一致。
所述下载模块103用于当客户端计算机10上启动的可执行文件的版本号与服务器30上对应的可执行文件的版本号不一致时,将服务器30上的可执行文件下载到客户端计算机10上,并安装该可执行文件。
如图3所示,是本发明一种可执行文件版本更新方法的较佳实施例的流程图。
首先,步骤S10,当用户将需要生成可执行文件的源代码存放于服务器时,设置模块301设置该源代码的编译时间。用户可以根据需要在任意时间进行设置,通常为减轻服务器30的负载,提高服务器30的处理效率,将编译时间设置在服务器30数据处理任务较少的时候。
步骤S11,读取模块302读取所述源代码中的属性信息及服务器30中存放该源代码对应的可执行文件的属性信息。所述的属性信息包括编写日期、修改日期及作者等资料。若服务器30中存放该源代码对应的可执行文件不存在,则可执行文件的属性信息为空。
步骤S12,判断模块303判断读取的源代码中的属性信息与服务器30中存放该源代码对应的可执行文件的属性信息是否一致。
步骤S13,当源代码中的属性信息及可执行文件中的属性信息不一致时,编译模块304在设置的时间对源代码进行编译,使其成为可执行文件。在本较佳实施例中,编译的方式有两种,一种为增量编译,即:只对新增加的功能所编写的源代码进行编译,另一种为完全编译,即:对所编写的源代码全部进行编译。通常判断使用哪一种编译的方式是在存放可执行文件的目录下查找是否存在对应的可执行文件,若存在对应的可执行文件,则为增量编译,若不存在对应的可执行文件,则为完全编译。
步骤S14,判断编译是否成功。若编译成功,则生成可执行文件,若编译不成功,则进入步骤S20,提示异常,将异常报告写入日志文件,并及时通知管理员。在本较佳实施例中,通知的方式是以邮件的形式通知管理员。
步骤S15,当源代码编译成功时,更新模块305更新服务器上的可执行文件,使其与编译成功的可执行文件一致。根据对源代码的编译方式的不同,更新的方式有两种,若编译的方式为增量编译,则将编译成功后生成的可执行文件覆盖该源代码对应的可执行文件,若编译的方式为完全编译,则将编译成功后生成的可执行文件存放在服务器30用于存放可执行文件的目录下。
步骤S16,修改模块306修改编译成功后所生成的可执行文件的版本号。在本较佳实施例中,修改的方式为,若编译成功一次,则对版本号递增一个数字,具体而言,假设原有的可执行文件的版本号文1.1,若编译成功,生成新的可执行文件,则将版本号修改为1.2。然而,视不同情况,在其他实施例中,用户可以设定其它方式修改版本号,例如,以递减的方式修改版本号。
步骤S17,当启动客户端计算机10的可执行文件时,获取模块101获取服务器30中对应的可执行文件的版本号。通常在客户端计算机安装好的可执行文件都有对应的图标,用户点击该图标就会启动对应的可执行文件,之后获取模块101会自动获取服务器30上的该可执行文件的版本号。具体而言,假设用户需要使用浏览器,点击浏览器对应的图标,启动浏览器对应的可执行文件,之后客户端计算机10自动读取服务器30上浏览器对应的可执行文件的版本号。
步骤S18,比较模块102判断客户端计算机10上启动的可执行文件的版本号与服务器30上对应的可执行文件的版本号是否一致。
步骤S19,当客户端计算机10上启动的可执行文件的版本号与服务器30上对应的可执行文件的版本号不一致时,下载模块103将服务器30上的可执行文件下载到客户端计算机10上,并安装该可执行文件。
在步骤S12中,当源代码中的属性信息及可执行文件中的属性信息一致时,则直接结束流程。
在步骤S18中,当客户端计算机10上启动的可执行文件的版本号与服务器30上对应的可执行文件的版本号一致时,则直接结束流程。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照以上较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (6)
1.一种可执行文件版本更新系统,包括服务器、客户端计算机系统,其特征在于,所述服务器包括:
设置模块,用于当用户将需要生成可执行文件的源代码存放于服务器时,设置该源代码的编译时间;
读取模块,用于读取所述源代码中的属性信息及服务器中存放该源代码对应的可执行文件的属性信息;
判断模块,用于判断读取的源代码中的属性信息与服务器中存放该源代码对应的可执行文件的属性信息是否一致;
编译模块,用于当源代码中的属性信息及可执行文件中的属性信息不一致时,在设置的编译时间对该源代码进行编译,使其成为可执行文件,所述编译的方式包括对新增加的功能所编写的源代码进行编译的增量编译及对所编写的源代码全部进行编译的完全编译;
更新模块,用于当源代码编译成功时,更新服务器上的可执行文件,若编译的方式为增量编译,则将编译成功后生成的可执行文件覆盖该源代码对应的可执行文件,若编译的方式为完全编译,则将编译成功后生成的可执行文件存放在服务器用于存放可执行文件的目录下,使其与编译成功的可执行文件一致;
修改模块,用于修改编译成功后所生成的可执行文件的版本号;
所述客户端计算机系统包括:
获取模块,用于当启动客户端计算机系统的可执行文件时,获取服务器中对应的可执行文件的版本号;
比较模块,用于比较客户端计算机系统上启动的可执行文件的版本号与服务器上对应的可执行文件的版本号是否一致;
下载模块,用于当客户端计算机系统上启动的可执行文件的版本号与服务器上对应的可执行文件的版本号不一致时,将服务器上的可执行文件下载到客户端计算机系统上,并安装该可执行文件。
2.如权利要求1所述的可执行文件版本更新系统,其特征在于,所述属性信息包括作者、源代码的编写日期及修改日期。
3.如权利要求1所述的可执行文件版本更新系统,其特征在于,所述服务器还包括写入模块,所述写入模块用于当源代码编译失败时,将异常报告写入日志文件,并通知管理员。
4.一种可执行文件版本更新方法,其特征在于,该方法包括如下步骤:
当用户将需要生成可执行文件的源代码存放于服务器时,设置该源代码的编译时间;
读取所述源代码中的属性信息及服务器中存放该源代码对应的可执行文件的属性信息;
当源代码中的属性信息与服务器中存放该源代码对应的可执行文件的属性信息不一致时,在设置的时间对源代码进行编译,使其成为可执行文件,所述编译的方式包括对新增加的功能所编写的源代码进行编译的增量编译及对所编写的源代码全部进行编译的完全编译;
当源代码编译成功时,更新服务器上的可执行文件,若编译的方式为增量编译,则将编译成功后生成的可执行文件覆盖该源代码对应的可执行文件,若编译的方式为完全编译,则将编译成功后生成的可执行文件存放在服务器用于存放可执行文件的目录下,使其与编译成功的可执行文件一致;
修改编译成功后所生成的可执行文件的版本号;
当启动客户端计算机系统的可执行文件时,读取服务器中对应的可执行文件的版本号;
当客户端计算机系统上启动的可执行文件的版本号与服务器上对应的可执行文件的版本号不一致时,将服务器上的可执行文件下载到客户端计算机系统上,并安装该可执行文件。
5.如权利要求4所述的可执行文件版本更新方法,其特征在于,所述属性信息包括作者、源代码的编写日期及修改日期。
6.如权利要求4所述的可执行文件版本更新方法,其特征在于,该方法还包括如下步骤:
当源代码编译失败时,将异常报告写入日志文件,并通知管理员。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810300769 CN101546269B (zh) | 2008-03-28 | 2008-03-28 | 可执行文件版本更新系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810300769 CN101546269B (zh) | 2008-03-28 | 2008-03-28 | 可执行文件版本更新系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101546269A CN101546269A (zh) | 2009-09-30 |
CN101546269B true CN101546269B (zh) | 2013-07-03 |
Family
ID=41193417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810300769 Expired - Fee Related CN101546269B (zh) | 2008-03-28 | 2008-03-28 | 可执行文件版本更新系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101546269B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013091162A1 (zh) * | 2011-12-19 | 2013-06-27 | 华为技术有限公司 | 一种分布式存储数据恢复方法、装置及系统 |
CN104298603B (zh) * | 2014-11-04 | 2018-01-30 | 中国银行股份有限公司 | 一种应用系统版本构建的正确性的检查方法 |
CN105100191B (zh) * | 2015-05-22 | 2018-09-21 | 华为技术有限公司 | 一种云编译实现Java应用安装的方法、装置及系统 |
CN105786574B (zh) * | 2016-03-17 | 2019-01-22 | 武汉华星光电技术有限公司 | 基于vdi群组的cim系统客户端版本更新方法及更新系统 |
CN106293849B (zh) * | 2016-08-18 | 2020-01-31 | 华为技术有限公司 | 一种应用更新方法和终端 |
CN107193607B (zh) * | 2017-05-26 | 2021-06-22 | 网易(杭州)网络有限公司 | 用于更新代码文件的方法和装置、存储介质、处理器以及终端 |
CN107844313B (zh) * | 2017-11-24 | 2020-05-08 | 武汉斗鱼网络科技有限公司 | 一种Android中SDK版本升级方法及装置 |
CN110035322A (zh) * | 2018-01-11 | 2019-07-19 | 中兴通讯股份有限公司 | 一种启动系统的方法、装置及计算机可读存储介质 |
CN108897542A (zh) * | 2018-04-24 | 2018-11-27 | 北京奇艺世纪科技有限公司 | 一种软件工程调整方法、装置及电子设备 |
CN110162324B (zh) * | 2019-06-03 | 2023-07-11 | 南方电网科学研究院有限责任公司 | 直流控制保护设备中的可执行代码更新方法、装置及介质 |
CN110837382B (zh) * | 2019-09-26 | 2021-01-08 | 北京和德宇航技术有限公司 | 一种基于服务框架的窄带天基物联网终端升级方法及系统 |
CN113157322A (zh) * | 2020-12-29 | 2021-07-23 | 深圳微步信息股份有限公司 | 一种自动显示软件编译时间的方法和系统 |
CN112835543B (zh) * | 2021-01-11 | 2024-04-12 | 上海电气集团股份有限公司 | 一种工程图的展示方法及装置 |
CN112860483B (zh) * | 2021-01-28 | 2024-03-12 | 上海卓易科技股份有限公司 | 一种自识别编译失败后重启编译控制方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1690961A (zh) * | 2004-04-30 | 2005-11-02 | 鸿富锦精密工业(深圳)有限公司 | 客户端程序自动更新系统及方法 |
CN1859125A (zh) * | 2006-03-31 | 2006-11-08 | 华为技术有限公司 | 集中远程自动升级软件的系统及其方法 |
CN1996885A (zh) * | 2006-12-14 | 2007-07-11 | 杭州华为三康技术有限公司 | 远程控制设备升级时间的方法、管理服务器及设备 |
-
2008
- 2008-03-28 CN CN 200810300769 patent/CN101546269B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1690961A (zh) * | 2004-04-30 | 2005-11-02 | 鸿富锦精密工业(深圳)有限公司 | 客户端程序自动更新系统及方法 |
CN1859125A (zh) * | 2006-03-31 | 2006-11-08 | 华为技术有限公司 | 集中远程自动升级软件的系统及其方法 |
CN1996885A (zh) * | 2006-12-14 | 2007-07-11 | 杭州华为三康技术有限公司 | 远程控制设备升级时间的方法、管理服务器及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101546269A (zh) | 2009-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101546269B (zh) | 可执行文件版本更新系统及方法 | |
EP2021937B1 (en) | Techniques to perform gradual upgrades | |
CN102262544B (zh) | 软件升级的方法和装置 | |
US9116776B2 (en) | Updating software objects | |
US7934210B1 (en) | System and method for updating one or more programs and their environment | |
CN102622241B (zh) | 一种软件升级方法及装置 | |
US7143406B2 (en) | Asynchronous software update | |
CN100421072C (zh) | 实现软件升级的方法 | |
CN106371874A (zh) | 一种插件数据加载方法及设备 | |
CN101770375A (zh) | 一种软件自动升级的实现方法、系统和装置 | |
CN1668010A (zh) | 用来在更新分发系统中分发更新元数据的基于标记模式 | |
CN102195804A (zh) | 软件自动更新方法及其系统 | |
CN1283817A (zh) | 一种为计算设备的自动配置创建并展开较小Microsoft Windows应用程序的方法和设备 | |
US20040098419A1 (en) | Method and apparatus for a migration assistant | |
CN102109989A (zh) | 一种控制浏览器缓存的方法、装置和系统 | |
CN102118500A (zh) | 移动终端开源操作系统基于软件包的在线自动更新方法 | |
CN1886976B (zh) | 用于使用动作列表及版本控制对一无线装置执行动作的方法及设备 | |
CN110908694A (zh) | 一种电子招投标客户端应用的热更新系统及方法 | |
CN102281326A (zh) | 基于web服务器的程序与数据自动同步更新的方法 | |
CN106357777A (zh) | 基于web服务器的程序与数据自动同步更新的方法 | |
CN114756276A (zh) | 一种基于基线的软件版本控制方法 | |
CN106100909A (zh) | 基于web服务器的程序与数据自动同步更新的方法 | |
CN104301355A (zh) | 基于单机完全部署和新旧节点池的集群热部署方法和系统 | |
CN112328295A (zh) | 软件更新方法及装置 | |
CN113360156A (zh) | 一种ios编译方法及相关设备 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130703 Termination date: 20150328 |
|
EXPY | Termination of patent right or utility model |