[译]更新器
By robot-v1.0
本文链接 https://www.kyfws.com/applications/updater-zh/
版权声明 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
- 26 分钟阅读 - 12612 个词 阅读量 0[译]更新器
原文地址:https://www.codeproject.com/Articles/9566/Updater
原文作者:Geert van Horrik
译文由本站 robot-v1.0 翻译
前言
This updater makes it possible to update your application easily with data in XML format. This way, you don’t have to write your own updater.
该更新程序使您可以轻松地使用XML格式的数据更新应用程序.这样,您不必编写自己的更新程序.
下载速度慢?(Slow download?)
如果您无法在此处下载文件,请访问(If you can’t download the files here, please visit) 我的网站(my website) .文件也位于此处.所有软件都在(. The files are located there too. All the software on) 我的网站(my website) 免费.(is free.)
内容(Contents)
- 介绍(Introduction)
- 我需要哪个下载?(Which Download Do I Need?)
- 特征(Features)
- 建筑(Architecture)
- 文件位置(File Locations)
- 顺序更新(Sequenced Updating)
- 更新工具(Updater Tool)
- 支持的语言(Supported Languages)
- 屏幕截图(Screenshots)
- 版本记录(Version History)
- 历史(History)
介绍(Introduction)
Updater是一个应用程序,使用户可以检查您的应用程序是否有新版本.如果有新版本,Updater将下载最新版本并为您安装.这样,您不必自己为应用程序编写更新程序模块!(Updater is an application which enables the user to check if there is a new version of your application. If there is a new version, Updater will download the newest version and install it for you. This way, you don’t have to write an updater module for your application yourself!)
我需要哪个下载?(Which Download Do I Need?)
如您所见,可以为Updater下载多个文件.其中有些很小,有些很大.在此处查看您需要下载的文件:(As you can see, there are several files that you can download for the Updater. Some of them are small, and some are very large. Check here to find out which download you need:)
包裹名字(Package name) | 描述(Description) |
---|---|
编译项目(Compiled project) | 这是最完整的项目.它包括可执行文件,源文件,资源文件,用户指南和屏幕截图.通常,您可以选择此下载.如果需要其他语言,则还需要语言包.(This is the most complete project. It includes the executable, source files, resource files, user guide, and screenshots. Normally, you can pick this download. If you want additional languages, you also need the language pack.) |
语言包(Language pack) | 这是单独下载,因为添加语言后,用户不想下载完整的软件包.该文件仅包含语言DLL.该文件位于(This is a separate download, because when a language is added, users don’t want to download the complete package. This file includes only the language DLLs. The file is located on) 我的网站(my website) . |
源文件(Source files) | 如果您认为编译后的项目太大,则只能下载源文件.此版本中没有用户指南.(If you think the compiled project is too big, you can download only the source files. There is no user guide included in this version.) |
特征(Features)
以下是更新程序的主要功能:(Here are the key-features of the Updater:)
-
选择性更新,仅允许更新应用程序的一小部分;(Selective updates to enable updating only small parts of an application;)
-
事件驱动,因此在每个事件之后,都可以执行自定义操作;(Event-driven, so after every event, custom actions can be performed;)
-
用户界面之间的运行时切换;(Run-time switching between user interfaces;)
-
更新回滚,可在取消更新或发生错误时将应用程序还原到原始状态;(Update rollback to restore the application to the original state when the update is cancelled or when an error occurs;)
-
全面的代理支持;(Full proxy support;)
-
还原应用程序的旧版本,即使在更新后一个月也是如此;(Restore older versions of an application, even a month after updating;)
-
软件保护,以确保只有注册用户才能更新您的软件(可选);(Software protection to make sure only registered users can update your software (optional);)
-
Updater可以执行的操作:(Actions that Updater can perform:)
- 下载;(Download;)
- 备份;(Backup;)
- 复制;(Copy;)
- 跑;(Run;)
- 删除;(Delete;)
- 解压缩(Unzip;)
- 修改INI文件;(Modify INI files;)
- 修改注册表文件;(Modify registry files;)
- 注册系统文件;(Register system files;)
-
多语言,语言会自动加载;(Multilingual, languages are loaded automatically;)
-
还有更多!(And a lot more!)
建筑(Architecture)
在本文的这一部分中,我将尝试解释Updater的工作原理,并解释其为何如此可扩展.解释体系结构的最佳方法是使用体系结构的图像:(In this part of the article, I will try to explain how the Updater works, and explain why it is so extensible. The best way to explain the architecture is by using an image of the architecture:)
首先,更新程序将初始化自身并为更新程序创建所需的目录.它还会加载语言文件并启动日志文件.(First, the Updater initializes itself and creates the needed directories for the Updater. It also loads a language file and starts a log file.)
创建更新程序后,主要过程是启动用户界面.加载哪种类型的用户界面对于主过程并不重要,因为所有用户界面都接收相同的消息并以相同的方式响应.用户界面决定用户是否可以与更新程序进行交互.用户界面通知主进程已准备好开始下一个任务.用户界面无法决定要启动哪个任务.主流程知道接下来要执行的任务.(After the creation of the Updater, the main process is starting a user interface. What kind of user interface is loaded is not important for the main process, because all user interfaces receive the same messages and respond in the same way. The user interface decides whether the user can interact with the Updater or not. The user interface informs the main process that it is ready to start the next task. The user interface cannot decide which task is to be started. The main process knows which task is coming next.)
主进程使用新任务启动新线程.该任务将计算所有必要的动作并开始执行这些动作.同样,启动哪种任务并不重要,因为所有这些任务都接收相同的消息并发送相同的消息.任务本身通过发送带有状态信息的更新进度消息来决定用户是否应该看到进度更新.任务完成后,该任务将向主更新过程发送一条消息.(The main process starts a new thread with the new task. This task will calculate all the actions necessary and start performing the actions. Again, it is not important what kind of task is started, because all these tasks receive the same messages and send the same messages. The task itself decides if the user should see a progress update or not, by sending update progress messages with status information. After a task is finished, the task will send a message to the main update process.)
重复这些步骤,直到完成所有任务.完成所有任务后,用户界面将通过发送线程消息向用户发送一条消息,要求用户结束应用程序.(These steps are repeated until all the tasks are finished. After finishing all the tasks, the user interface will send a message that the user wants to end the application by sending it a thread message.)
最后,主要过程将清理所有对象并删除文件夹.释放语言DLL,并关闭日志.最后,它关闭了完整的应用程序.(Finally, the main process will clean up all the objects and remove the folders. The language DLL is released and the log is closed. Finally, it closes the complete application.)
如您所见,Updater非常灵活,因为所有这些操作和用户界面都接收和发送相同的消息.这样,很容易在几分钟内实现一个新的用户界面.大多数时间都花在设计新的用户界面上.(As you can see, the Updater is very flexible because all these actions and user interfaces receive and send the same messages. This way, it is very easy to implement a new user interface in just a few minutes. Most of the time is spent in designing the new user interface.)
此外,添加新任务非常容易,因为不必编辑更新程序中的其他任务.我希望本文的这一部分可以帮助您了解Updater的体系结构,技术和代码.如有任何疑问,请使用下面的论坛.(Also, adding a new task is very easy because other tasks in the Updater don’t have to be edited. I hope this part of the article helped you understand the architecture, technique, and the code of the Updater. If you have any questions, use the forum below.)
文件位置(File Locations)
更新程序需要一些不同的文件才能正常工作.可用文件列表:(The Updater needs some different files to work correctly. A list of the available files:)
- 设定文件(Settings file)
- 更新档案(Update file)
- 节文件(Sections file)
- 自我更新文件(Self update file) 文件应位于此处所示的位置:(The files should be located as shown here:)
顺序更新(Sequenced Updating)
可以按顺序更新产品.这意味着用户有义务按顺序将版本从0.1更新到0.4.下图显示了一个示例:(It is possible to update a product in sequences. This means the user can be obligated to update from version 0.1 to 0.4 in sequences. An example is shown in the image below:)
要使用顺序更新,所有更新文件(以及较旧的版本)都应位于服务器上.更新程序将首先读取更新文件的这一部分.如果当前应用程序版本至少与更新文件中的最低版本不匹配,则更新程序将下载位于location元素中的文件.这样,可以创建一个更新文件链,这将导致没有序列字段或当前应用程序版本与最小版本字段匹配的第一个更新.(To use sequenced updating, all update files (also the older versions) should be located on the server. The Updater will first read this part of the update file. If the current application version does not match at least the minimum version in the update file, the Updater will download the file located at the location element. This way, it is possible to create a chain of update files, which will lead to the very first update which has no sequence fields, or where the current application version matches the minimum version field.)
更新工具(Updater Tool)
有一种为Updater开发的工具,因此用户可以轻松创建和管理XML格式的Updater文件.该工具可用于(There is a tool developed for the Updater so that the users can easily create and manage the Updater files which are in XML format. The tool is available on) 我的网站(my website) .(.)
支持的语言(Supported Languages)
Updater正式支持许多语言.请退房(There are a lot of languages officially supported by the Updater. Please check out) 我的网站(my website) 查看实际支持的语言列表.(to view the actual list of languages supported.)
屏幕截图(Screenshots)
全模式(Full Mode)
欢迎屏幕(Welcome Screen)
在这里,您可以看到欢迎屏幕.此屏幕向用户说明更新程序将要执行的操作.(Here, you can see the welcome screen. This screen explains to the user what the Updater is going to do.)
检查新版本屏幕(Check for New Version Screen)
在此屏幕中,更新程序将检查新版本.如果有新版本,它将被注意到.如果没有新版本,则会向用户显示一条消息,然后出现"完成"按钮.(In this screen, the Updater checks for a new version. If there is a new version, it will be noticed. If there is no new version, a message is shown to the user, and the Finish button appears.)
HTML消息屏幕(HTML Message Screen)
在此屏幕中,可以显示产品/公司信息.该屏幕是可选的,因此不需要添加HTML消息.(In this screen, it is possible to show the product/company information. This screen is optional, so it is not needed to add an HTML message.)
许可画面(License Screen)
在此屏幕中,用户必须同意许可.该屏幕是可选的,因此不需要添加许可证.(In this screen, the user must agree to the license. This screen is optional, so it is not needed to add a license.)
选择更新屏幕(Select Update Screen)
在此屏幕中,用户可以选择他/她想要安装的更新.(In this screen, the user is able to select the updates he/she wants to install.)
下载画面(Download Screen)
在此屏幕中,更新程序将下载更新过程所需的所有文件.用户可以随时取消操作.同样,所有错误都将被捕获并显示给用户.(In this screen, the Updater downloads all the files needed for the updating process. The user can always cancel the operation. Also, all the errors will be caught and shown to the user.)
安装画面(Install Screen)
在此屏幕中,更新程序将执行更新过程所需的所有操作.用户可以随时取消操作.同样,所有错误都将被捕获并显示给用户.(In this screen, the Updater executes all the actions needed for the updating process. The user can always cancel the operation. Also, all the errors will be caught and shown to the user.)
完成画面(Finish Screen)
该屏幕向用户显示消息"准备更新".(This screen shows the message “ready updating” to the user.)
回滚屏幕(Rollback Screen)
此屏幕显示回滚任务的进度.(This screen shows the progress of the rollback task.)
静音模式(Silent Mode)
下载画面(Download Screen)
该屏幕显示了向用户发送通知的示例.如您所见,下载才刚刚开始.用户始终可以通过右键单击图标并选择"退出"来取消操作.(This screen shows an example of a notification to the user. As you can see, the download has just started. The user can always cancel the actions by right-clicking on the icon and choosing Exit.)
完成画面(Finish Screen)
该屏幕显示了向用户发送通知的示例.现在,它表明更新过程已准备就绪.已安装新版本,并且成功.(请参见图标).用户可以通过右键单击图标并选择退出来退出更新程序.(This screen shows an example of a notification to the user. Now, it shows that the update process is ready. A new version is installed, and it is succeeded (see icon). The user can exit the Updater by right-clicking on the icon and choosing Exit.)
恢复画面(Restore Screen)
这将显示帮助用户还原产品较旧版本的屏幕.(This shows the screen that will help the user to restore an older version of a product.)
版本记录(Version History)
当前版本是0.8.1.6.(The current version is 0.8.1.6.)
更新程序v 0.8.1.6(Updater v 0.8.1.6)
-
手册(Manual)
- v0.8.1.5(v0.8.1.5)
-
语言包(Language pack)
- v0.8.1.5(v0.8.1.5)
-
添加/固定(Added/fixed)
- 修复了读取未加密的更新文件时的错误.(Fixed bug when reading a not-encrypted update file.)
-
去做(To-do)
- 增强FTP支持;(Enhance FTP support;)
- 顺序更新应该计算应该采取的操作,因此只需要一个更新,而实际上,需要更多的更新.当前,用户只能更新下一个版本,而不能立即更新到当前版本.(Sequenced updating should calculate which actions should be taken so there is only one update needed, while in real, more updates are needed. Currently, the user can update only the next version, not the one immediately to the current version;)
- 添加脚本引擎;(Add scripting engine;)
- 添加用户数据收集;(Add user data collection;)
- 添加蒙皮引擎.(Add skinning engine.)
-
已知错误(Known bugs)
- 零(Nil)
更新程序v 0.8.1.5(Updater v 0.8.1.5)
-
手册(Manual)
- v0.8.1.5(v0.8.1.5)
-
语言包(Language pack)
- v0.8.1.5(v0.8.1.5)
-
添加/固定(Added/fixed)
- 添加了用于关闭应用程序(用户)的新选项,因此用户可以自己关闭应用程序.(Added new option for closing application (user) so user can close the application by himself.)
- 没有用户登录Windows时,无法再启动Updater.(Updater can’t be started anymore when no user is logged in to Windows.)
- 用Rijndael加密替换了ARACrypt加密.(Replaced ARACrypt encryption with Rijndael encryption.)
- 修复了使用时的一些错误(Fixed some bugs when using)
CLOSEAPPLICATION
.(.) - 修复了将数据写入注册表时的错误.(Fixed bug when writing data to the registry.)
- 修复了某些人无法下载文件的错误.(Fixed bug that some people were not able to download files.)
- 修复了使用自定义设置文件时将版本写入默认设置而不是默认设置的错误.(Fixed bug when a custom settings file is used, the version is written to the custom settings file instead of the default one.)
-
去做(To-do)
- 增强FTP支持;(Enhance FTP support;)
- 顺序更新应该计算应该采取的操作,因此只需要一个更新,而实际上,需要更多的更新.当前,用户只能更新下一个版本,而不能立即更新到当前版本.(Sequenced updating should calculate which actions should be taken so there is only one update needed, while in real, more updates are needed. Currently, the user can update only the next version, not the one immediately to the current version;)
- 添加脚本引擎;(Add scripting engine;)
- 添加用户数据收集;(Add user data collection;)
- 添加蒙皮引擎.(Add skinning engine.)
-
已知错误(Known bugs)
- 零(Nil)
更新程序v 0.8.1.4(Updater v 0.8.1.4)
-
手册(Manual)
- v0.8.1.3(v0.8.1.3)
-
语言包(Language pack)
- v0.8.1.3(v0.8.1.3)
-
添加/固定(Added/fixed)
- 修复了使用时的错误(Fixed bug when using)
CloseApplication
- 修复了解压缩错误(Fixed unzipping bug)
- 修复了使用时的错误(Fixed bug when using)
-
去做(To-do)
- 增强FTP支持;(Enhance FTP support;)
- 顺序更新应该计算应该采取的操作,因此只需要一个更新,而实际上,需要更多的更新.当前,用户只能更新下一个版本,而不能立即更新到当前版本.(Sequenced updating should calculate which actions should be taken so there is only one update needed, while in real, more updates are needed. Currently, the user can update only the next version, not the one immediately to the current version;)
- 添加脚本引擎;(Add scripting engine;)
- 添加用户数据收集;(Add user data collection;)
- 添加蒙皮引擎.(Add skinning engine.)
-
已知错误(Known bugs)
- 零(Nil)
更新程序v 0.8.1.3(Updater v 0.8.1.3)
-
手册(Manual)
- v0.8.1.3(v0.8.1.3)
-
语言包(Language pack)
- v0.8.1.3(v0.8.1.3)
-
添加/固定(Added/fixed)
- 设置文件可以位于(Settings file can be located anywhere when the)**-settings文件(-settingsfile)**使用参数.(parameter is used.)
- 成功更新后,将删除临时更新文件.(Temporary update files are deleted after a successful update.)
- 执行回滚时,应用程序将重新启动,但仅在成功更新后应启动应用程序时才重新启动.(Application will be restarted when a rollback is performed, but only when the application should start after a successful update.)
- 现在支持(本地)相对路径.((Local) relative paths are now supported.)
- 现在支持Windows 98.(Windows 98 is now supported.)
- 添加了新设置(应用程序根目录,请参阅用户指南以获取更多详细信息).(Added new setting (application root, see user guide for more details).)
- 添加了新的常量((Added new constants ()
%updateserverpath%
,(,)%updateserverfile%
和(, and)%approot%
).().) - 现在使用应用程序名称来命名节文件.这样就可以将一个更新可执行文件用于多个应用程序.(Section files are now named with the application name. This makes it possible to use one update executable for multiple applications.)
- Updater现在与Unicode兼容.(Updater is now Unicode compatible.)
- 改进的用户指南,添加了服务器文件布局的示例.(Improved user guide, an example of server file lay-out is added.)
- 仅当确实使用设置时,节文件才会写入应用程序文件夹.(Section file is only written to the application folder when settings are really used.)
- 没有子编号的版本号(即1代替1.1)会正确解析,因此可以毫无问题地使用它们.(Version numbers without sub numbers (i.e., 1 instead of 1.1) are parsed right so they can be used without any problems.)
- 现在,其他应用程序已正确关闭.(Other applications are closed properly now.)
-
去做(To-do)
- 增强FTP支持;(Enhance FTP support;)
- 顺序更新应该计算应该采取的操作,因此只需要一个更新,而实际上,需要更多的更新.当前,用户只能更新下一个版本,而不能立即更新到当前版本.(Sequenced updating should calculate which actions should be taken so there is only one update needed, while in real, more updates are needed. Currently, the user can update only the next version, not the one immediately to the current version;)
- 添加脚本引擎;(Add scripting engine;)
- 添加用户数据收集;(Add user data collection;)
- 添加蒙皮引擎.(Add skinning engine.)
-
已知错误(Known bugs)
- 零(Nil)
更新程序v 0.8.1.2(Updater v 0.8.1.2)
-
手册(Manual)
- v0.8.1.2(v0.8.1.2)
-
语言包(Language pack)
- v0.8.1.2(v0.8.1.2)
-
添加/固定(Added/fixed)
- 添加了日志查看器,因此只需使用(Added log viewer so the log file can be viewed by simply using the)**-日志(-log)**参数.(parameter.)
- 添加了(Added the)
%windowsdirectory%
不变.(constant.) - 添加了下载目标字段.(Added download destination field.)
- 添加了新参数(Added new parameter)**-检查更新(-checkforupdates)**在隐藏模式下检查新更新.(which checks for new updates in hidden mode.)
- 现在可以将代理密码存储在设置文件中.(Proxy password can now be stored in the settings file.)
- 现在支持HTTPS.(HTTPS is now supported.)
- 在信息,警告和错误对话框中删除了文件的状态.(The status of the file is stripped in the information, warning, and error dialogs.)
- 扩展日志信息.(Extended log information.)
- 现在,所有对话框都支持ClearType.(All dialogs now support ClearType.)
- 用户指南被重写和改进.(User guide is rewritten and improved.)
- 使用新版本的解压缩库,其中包括一些错误修复.(Uses a new version of the unzip library, which includes some bug fixes.)
- 改进了非Windows XP计算机上的用户界面.(Improved user interface on non-Windows XP machines.)
- 修复了拨号问题,如果您有两个连接(例如,拨号和通过代理无线连接),则此问题也适用.(Fixed dial-up issue, this also works if you have two connections, e.g., dialup and wireless through proxy.)
- 修复了关闭应用程序的错误.(Fixed close-application bug.)
- 修复了注册表错误.(Fixed registry bug.)
- 修复了一些互联网连接错误.(Fixed some internet connection bugs.)
- 修复了将无效URL用作更新位置时的错误.(Fixed bug when an invalid URL was used as the update location.)
- 修复了使用ClearType时超链接看起来模糊的错误.(Fixed bug that hyperlinks look blurry when using ClearType.)
- 修复了以下错误(Fixed several bugs in)无声(silent),(,)**非常安静(verysilent)**和(, and)**隐(hidden)**模式.(modes.)
- 修复了解析参数时的错误.(Fixed bug when parsing parameters.)
-
去做(To-do)
- 增强FTP支持;(Enhance FTP support;)
- 顺序更新应该计算应该采取的操作,因此只需要一个更新,而实际上,需要更多的更新.当前,用户只能更新下一个版本,而不能立即更新到当前版本.(Sequenced updating should calculate which actions should be taken so there is only one update needed, while in real, more updates are needed. Currently, the user can update only the next version, not the one immediately to the current version;)
- 添加脚本引擎;(Add scripting engine;)
- 添加用户数据收集;(Add user data collection;)
- 添加蒙皮引擎.(Add skinning engine.)
-
已知错误(Known bugs)
- 零(Nil)
更新程序v 0.8.1.1(Updater v 0.8.1.1)
-
手册(Manual)
- v0.8.1.1(v0.8.1.1)
-
语言包(Language pack)
- v0.8.1.1(v0.8.1.1)
-
添加/固定(Added/fixed)
- 改进了下载简历;(Improved download resume;)
- 改进的FTP,HTTP和网络下载;(Improved FTP, HTTP, and network downloads;)
- 改进的用户界面;(Improved user interface;)
- 重命名了Updater的所有参数;(Renamed all the parameters for Updater;)
- 修复了注册OCX文件时的错误;(Fixed bug when registering OCX files;)
- 添加了新的事件操作:show notifier;(Added new event action: show notifier;)
- 修复了更新文件被加密时的错误;(Fixed bug when the update file is encrypted;)
- 修复了取消更新时的错误;(Fixed bug when canceling an update;)
- 多亏FrançoisLe Luhern,许多功能都得到了改进.(Thanks to François Le Luhern, a lot of features have been improved;)
- 添加了手动代理设置-仍处于测试阶段;(Added manual proxy settings - still in beta phase;)
- 当更新程序在静默模式下运行且没有自定义弹出菜单项时,它将完成并在安装完成后自动关闭;(When the Updater runs in silent mode and has no custom popup menu items, it will finish and close automatically when the install is finished;)
- 现在可以自定义超链接颜色;(Hyperlink colors can be customized now;)
- 删除了自定义语言文件;(Removed custom language file;)
- 将语言格式从DLL转换为XML;(Converted language format from DLL to XML;)
- 添加了选择语言对话框;(Added select language dialog;)
- 删除了(Removed the)
OnOpen
事件,因为它没有用;(event since it was useless;) - XML标记现在可以毫无问题地用作数据;(XML tags can now be used as data without any problems;)
- 许多小的错误修复;(A lot of minor bug fixes;)
-
去做(To-do)
- 增强FTP支持;(Enhance FTP support;)
- 顺序更新应该计算应该采取的操作,因此只需要一个更新,而实际上,需要更多的更新.当前,用户只能更新下一个版本,而不能立即更新到当前版本.(Sequenced updating should calculate which actions should be taken so there is only one update needed, while in real, more updates are needed. Currently, the user can update only the next version, not the one immediately to the current version;)
- 添加脚本引擎;(Add scripting engine;)
- 添加用户数据收集;(Add user data collection;)
- 添加蒙皮引擎.(Add skinning engine.)
-
已知错误(Known bugs)
- 零(Nil)
更新程序v 0.7.1.2(Updater v 0.7.1.2)
-
手册(Manual)
- v0.7.1.2(v0.7.1.2)
-
语言包(Language pack)
- v0.7.1.2(v0.7.1.2)
-
添加/固定(Added/fixed)
- 改进了下载简历;(Improved download resume;)
- 改进的FTP,HTTP和网络下载;(Improved FTP, HTTP, and network downloads;)
- 重命名了Updater的所有参数;(Renamed all the parameters for Updater;)
- 修复了注册OCX文件时的错误;(Fixed bug when registering OCX files;)
- 添加了新的事件操作:show notifier;(Added new event action: show notifier;)
- 修复了更新文件被加密时的错误;(Fixed bug when the update file was encrypted;)
- 多亏FrançoisLe Luhern,许多功能都得到了改进.(Thanks to François Le Luhern, a lot of features have been improved;)
- 添加了手动代理设置-仍处于测试阶段;(Added manual proxy settings - still in beta phase;)
- 当更新程序在静默模式下运行且没有自定义弹出菜单项时,它将完成并在安装完成后自动关闭.(When the Updater runs in silent mode and has no custom popup menu items, it will finish and close automatically when the install is finished.)
-
去做(To-do)
- 增强FTP支持;(Enhance FTP support;)
- 顺序更新应该计算应该采取的操作,因此只需要一个更新,而实际上,需要更多的更新.当前,用户只能更新下一个版本,而不能立即更新到当前版本.(Sequenced updating should calculate which actions should be taken so there is only one update needed, while in real, more updates are needed. Currently, the user can update only the next version, not the one immediately to the current version;)
- 添加脚本引擎;(Add scripting engine;)
- 添加用户数据收集;(Add user data collection;)
- 添加蒙皮引擎.(Add skinning engine.)
-
已知错误(Known bugs)
- 零(Nil)
更新程序v 0.7.1.1(Updater v 0.7.1.1)
-
手册(Manual)
- v0.7.1.1(v0.7.1.1)
-
语言包(Language pack)
- v0.7.1.1(v0.7.1.1)
-
添加/固定(Added/fixed)
- 更新程序现在可以在更新后重新启动系统;(Updater can now restart the system after update;)
- 现在,更新程序可以在所有事件中关闭任何应用程序.(Updater can now close any application at all the events;)
- 修复了一些内存泄漏;(Fixed some memory leaks;)
- 可能会迫使用户更新应用程序;(User can be forced to update an application;)
- 修复了用户按"取消"时显示错误页面的错误.(Fixed bug that wrong page is displayed when the user presses cancel;)
- 从此版本开始,默认情况下检查连接处于禁用状态.(Check connection is disabled by default since this version;)
- 当在(When using close action at)
AfterInstall
事件,更新程序无法正确完成更新.该错误已修复;(event, the Updater did not finish the update properly. The bug is fixed;) - Updater切换到HTML消息,许可证和"选择更新"的完全模式.如果您希望更新程序更改为完全模式,请使用事件操作(Updater switched to full mode on HTML message, license and Select Update. If you want Updater to change to full mode, use the event action)
setmode
关于事件以设置模式,因为Updater不再自动更改UI;(on the events to set the mode, because Updater will not change the UI automatically anymore;) - 修复了更新程序在关闭应用程序后开始安装太快的错误;(Fixed bug that the Updater started installing too quick after closing the application;)
- 添加了几个新的路径变量;(Added several new path variables;)
- 增加了快捷方式支持;(Added shortcuts support;)
- 现在可以指定注册表项的类型.(A type for registry items can now be specified;)
- 增加了软件保护机制;(Added software protection mechanism;)
- 添加了新文件操作->注册文件;(Added new file action -> register files;)
- 添加了可定制的弹出式通知以静音模式;(Added customizable popup notify for silent mode;)
- 添加了对不同产品版本使用不同更新文件的方法;(Added a method to use different update files for different product editions;)
- 添加了将位图添加到弹出菜单的选项;(Added option to add bitmaps to popup menu;)
- 扩展日志功能,完全记录了更新文件的解析,因此更容易发现错误;(Extended log function, parsing of update file is completely logged so errors can be found more easily;)
- 添加了还原功能,以还原产品的旧版本;(Added restore feature, to restore an older version of the product;)
- 修复了无法禁用部分的错误;(Fixed bug that sections could not be disabled;)
- 修复了用户取消接收更新文件时Updater崩溃的错误.(Fixed bug that the Updater crashed when user cancels receiving the update file;)
- 当用户在下载操作之前按"取消"时,将不再启用回滚.(When user presses cancel before the download action, rollback will not be enabled anymore;)
- 修复了一些小错误;(Fixed some minor bugs;)
-
去做(To-do)
- 顺序更新应该计算应该采取的操作,因此只需要一个更新,而实际上,需要更多的更新.当前,用户只能更新下一个版本,而不能立即更新到当前版本.(Sequenced updating should calculate which actions should be taken so there is only one update needed, while in real, more updates are needed. Currently, the user can update only the next version, not immediately to the current version;)
- 添加脚本引擎;(Add scripting engine;)
- 添加用户数据收集;(Add user data collection;)
- 添加蒙皮引擎;(Add skinning engine;)
-
已知错误(Known bugs)
- 零(Nil)
更新程序v 0.6.3.2(Updater v 0.6.3.2)
-
手册(Manual)
- v0.6.3.2(v0.6.3.2)
-
语言包(Language pack)
- v0.6.3.2(v0.6.3.2)
-
添加/固定(Added/fixed)
- 改进了确认屏幕. Updater将解释用户为什么必须通过一个不错的用户界面来确认删除文件,关闭应用程序或停止更新;(Improved confirmation screens. Updater will explain why the user must confirm to file deletion, application closing or stop updating, with a nice user interface;)
- 改进的错误屏幕. Updater会再次通过一个不错的用户界面来说明发生了什么以及用户将来可以采取什么措施来防止它发生.(Improved error screens. Updater will explain what happened and what the user can do about it in the future to prevent it from happening, again with a nice user interface;)
- 常量也可以在其他常量中使用.但是,必须首先声明使用的常量.(Constants can be used in other constants too. However, the constants used must be declared first;)
- 当用户能够选择不删除文件时,更新程序将冻结.该错误已修复;(When user was able to choose not to delete file, Updater froze. This bug is fixed;)
- 无法删除文件时,Updater将继续更新;(When file cannot be deleted, Updater will continue updating;)
- 添加了新的事件操作:开始下一个任务.当下载后应立即开始安装时,这很有用;(Added new event action: start next task. This is useful when install should begin immediately after downloading;)
- 也可以通过哈希检查文件(仅当单独使用检查时);(Files can be checked by hash too (only when using check separately);)
- 尝试下载0字节文件时,Updater不会停止更新.(Updater will not stop updating when trying to download a 0 byte file;)
- 现在可以使用Updater工具加密更新文件.(It is now possible to encrypt the update file using Updater tool;)
- Updater现在可以加载将来的语言文件.以前,您需要确切的语言文件版本;(Updater can now load future language files. Previously, you needed the exact language file version;)
- 现在可以在不重建Updater的情况下指定自我更新位置.(Self-update location can now be specified without rebuilding Updater;)
- Updater不会再失败(Updater will not fail anymore when)**gvhsoftware.org(gvhsoftware.org)**无法访问并且已启用自我更新;(is not reachable and self-update is enabled;)
-
去做(To-do)
- 顺序更新应该计算应该采取的操作,因此只需要一个更新,而实际上,需要更多的更新.当前,用户只能更新下一个版本,而不能立即更新到当前版本.(Sequenced updating should calculate which actions should be taken so there is only one update needed, while in real, more updates are needed. Currently, the user can update only the next version, not immediately to the current version;)
- 添加了注册和许可证管理功能.(Added registration and license management feature.)
-
已知错误(Known bugs)
- 零(Nil)
更新程序v 0.6.3.1(Updater v 0.6.3.1)
-
手册(Manual)
- v0.6.3.1(v0.6.3.1)
-
语言包(Language pack)
- v0.6.3.1(v0.6.3.1)
-
添加/固定(Added/fixed)
- 添加了新功能(HTML消息),因此公司或产品信息可以作为HTML页面显示给用户;(Added new feature (HTML message) so company or product information can be shown to the user as an HTML page;)
- 添加了顺序更新(有关更多详细信息,请参见用户指南);(Added sequenced updating (see user guide for more details);)
- 固定版本检查机制.只能解析带点(.)的版本.感谢Steve Greaves,在版本字符串中可以使用很多字符(.,|–_).(Fixed version checking mechanism. Only versions with dots (.) could be parsed. Thanks to Steve Greaves, it is possible to use a lot of characters (. , | - _) in the version strings;)
- 当更新程序无法连接到(When Updater can’t connect to)**www.gvhsoftware.org(www.gvhsoftware.org)**检查自我更新,更新仍将继续;(to check for self-update, update will still continue;)
- 修复了更新完成后系统托盘显示安装进度的错误;(Fixed bug that system tray showed install progress while update was already finished;)
- 从无声模式切换到全模式时,Updater现在设置为活动(前)窗口;(When switching from silent to full mode, Updater is now set as active (front) window;)
- 在静默模式下运行并使用节时,所有节均被添加了两次,此错误已修复;该错误已修复.(When running in silent mode and using sections, all the sections were added twice, this bug is fixed;)
- 有时,当用户单击"取消"时,Updater未能加载正确的页面,此错误已得到修复.(Sometimes Updater did not load the right page when the user clicked Cancel, this bug is fixed;)
- 优化事件处理;(Optimized event handling;)
- 添加了禁用代理支持的选项;(Added option to disable proxy support;)
- 添加了新参数((Added new parameters ()
checkconnection
和(and)enableproxy
);();) - 现在可以将超链接添加到新功能,以向用户提供有关特定功能的更多信息.(It is now possible to add hyperlinks to new features to give the user more information about a specific feature;)
- 现在可以在部分中添加超链接,以向用户提供有关特定部分的更多信息.(It is now possible to add hyperlinks to sections to give the user more information about a specific section;)
- 在部分屏幕中,第一部分的标题和描述会自动显示;(In the section screen, the title and the description of the first section are displayed automatically;)
- 一些小的错误修复和改进.(Some minor bug fixes and improvements.)
-
去做(To-do)
- 顺序更新应该计算应该采取的操作,因此只需要一个更新,而实际上,需要更多的更新.当前,用户只能更新下一个版本,而不能立即更新到当前版本.(Sequenced updating should calculate which actions should be taken so there is only one update needed, while in real, more updates are needed. Currently, the user can update only the next version, not immediate to the current version.)
-
已知错误(Known bugs)
- 零(Nil)
更新程序v 0.6.2.3(Updater v 0.6.2.3)
-
手册(Manual)
- v0.6.2.3(v0.6.2.3)
-
语言包(Language pack)
- v0.6.2.3(v0.6.2.3)
-
添加/固定(Added/fixed)
- 添加了代理身份验证支持,现在可以通过所有代理;(Proxy authentication support added, all proxies can be passed now;)
- 固定连接超时;(Fixed connection timeout;)
- 现在可以禁用节.(Sections can now be disabled.)
-
去做(To-do)
- 用于创建XML文件的开发工具.(Develop tool for creating the XML-files.)
-
已知错误(Known bugs)
- 零(Nil)
历史(History)
-
八月24(August 24)日(th),2006(, 2006)
- 新版本(0.8.1.6)的更新程序已发布!(New version (0.8.1.6) of Updater released!)
- 发布了更新程序工具的新版本(0.4.1.2)!(New version (0.4.1.2) of Updater tool released!)
-
三月24(March 24)日(th),2006(, 2006)
- 新版本(0.8.1.2)的更新程序已发布!(New version (0.8.1.2) of Updater released!)
- 发行了更新程序工具的新版本(0.3.0.1)!(New version (0.3.0.1) of Updater tool released!)
-
一月31(January 31)圣(st),2006(, 2006)
- 新版本(0.8.1.1)的更新程序已发布!(New version (0.8.1.1) of Updater released!)
- 发布了更新程序工具的新版本(0.3.0.0)!(New version (0.3.0.0) of Updater tool released!)
-
十二月24(December 24)日(th),2005(, 2005)
- 新版本(0.7.1.2)的更新程序已发布!(New version (0.7.1.2) of Updater released!)
- 发布了更新程序工具的新版本(0.2.0.2)!(New version (0.2.0.2) of Updater tool released!)
-
十月10(October 10)日(th),2005(, 2005)
- 新版本(0.7.1.1)的更新程序已发布!(New version (0.7.1.1) of Updater released!)
- 发布了更新程序工具的新版本(0.2.0.1)!(New version (0.2.0.1) of Updater tool released!)
-
八月18(August 18)日(th),2005(, 2005)
- 新版本(0.6.3.2)的更新程序已发布!(New version (0.6.3.2) of Updater released!)
- 发行了更新程序工具的新版本(0.2.0.0)!(New version (0.2.0.0) of Updater tool released!)
- 整理文章并添加体系结构概述.(Cleaned up the article and added architecture overview.)
-
八月5(August 5)日(th),2005(, 2005)
- 新版本(0.6.3.1)的更新程序已发布!(New version (0.6.3.1) of Updater released!)
- 发布了更新程序工具的新版本(0.1.0.1)!(New version (0.1.0.1) of Updater tool released!)
-
7月13日(July 13)日(th),2005(, 2005)
- 新版本(0.6.2.3)的更新程序已发布!(New version (0.6.2.3) of Updater released!)
许可
本文以及所有相关的源代码和文件均已获得The Code Project Open License (CPOL)的许可。
VC7.0 C++ VC6 Win2K WinXP Win2003 .NET1.0 MFC Visual-Studio Dev 新闻 翻译