本文主要解释应用的更新方式、更新说明、如何进行系统更新,以及常见的更新问题。MES主程序更新有三个频道:稳定版、公测版、内测版。
稳定版本来自公测版本释出使用与改善而修正完成,通常是初始版本进行几个小更新后的版本。为目前所使用的软件在符合需求规格的硬件与操作系统中运行不会造成严重的不兼容或是硬件冲突,其已受过某定量的测试无误后所释出。
公测版本是软件最早对外公开的软件版本,由公众参与测试,此版本包含所有功能性的更新,但可能会有一些已知问题和轻微程序错误,需要进一步调试。我们诚邀外部客户或合作伙伴参与其测试,及时反馈问题会使软件有更高的可用性。
内测版本仍然需要测试,其功能亦未完善,因为它是整个软件发布周期中的第一个阶段,通常会推送到开发软件的部门或顾问群体中的软件测试者作内部测试。此版本不一定能稳定运行,仅供我司内部测试用。
注意更新程序是一项非常严肃的工作,需要您综合评估当前版本和最新版本之间的功能差异。部分缺失的数据可能需要专业人员处理,普通用户不应随意更新。请严格按照本说明进行操作!
本应用程序可提供自动手动两种更新方式:
仅Windows系统支持自动更新程序
1.打开安装目录下的“UpdateHelper.exe”文件;
如果没有更新文件,则可以 点击下载更新工具 后,解压放到站点根目录下运行,即“MES.Mvc.exe”所在的目录,最终是产品“MES.Mvc.exe”和更新工具“UpdateHelper.exe”在同一个目录下:
程序会自动计算站点所用的进程池,但您仍需要检查所选进程池是否正确,确认所选择MES站点的进程池正确后,点击检查更新,验证账号后工具会罗列出当前版本和最新版本之间的更新内容,请仔细阅读核对无误后方可点击开始更新;
2.打开系统的数据库校验工具(ModelCheck),生成语句去SSMS执行即完成更新。
本应用程序需要.NET Framework 4.5.2或更高版本支持,Windows Server 2012 R2以上版本系统自带,否则需要 手动下载安装。
更新程序开始后在备份和下载更新文件过程中可以关闭程序以取消更新,过了这个进度不能关闭更新程序,会导致不可预测的意外情况。如果程序开始更新后进度始终卡在“等待应用程序结束并清理缓存文件,预计1分钟左右”,请检查进程池选择是否正确,如果进程池选择错误,则需要您到IIS管理器进程池管理界面手动回收MES站点的进程池,再等待程序更新完成,切勿在此时关闭更新程序。强行关闭更新程序将导致程序异常,需要手工恢复备份文件,部分情况下需要删除站点目录后重新安装。
1.备份当前版本的文件;
2.在版本记录中下载对应的文件;
3.停止网站服务,也可以停止IIS的进程池或者程序本身;
4.将下载好的更新文件解压到原站点所在的文件夹,覆盖原有文件;
5.重新启动网站服务;
6.打开系统的数据库校验工具(ModelCheck),生成语句去SSMS执行即完成更新。
1.过于老旧的版本更新需要特别注意现有版本对操作系统要求不低于Windows Server 2012,数据库要求版本不低于SQL Server 2012。
2.现有应用在Windows系统运行时依赖于 .Net 6.0、 VC++2015-2022、 Redis 组件,请务必先完成这些基础环境的安装。
3.系统更新包不能用于系统部署,不能独立运行。
4.即使是自动更新,过程中依然会有短暂的服务不可用现象,请和客户做好沟通工作,协调相关第三方系统(例如ERP、数据采集等互联互通的业务系统)配合,严禁在用户使用中更新版本,由此引发的数据异常需要您手工处理。
5.自动更新过程中若有错误会导致应用无法启动,可尝试关闭安全软件或者将本工具软件加入白名单并允许本工具的所有操作,再重试更新。如果自动更新持续报错,请您尝试手动更新。如果自动更新工具已经下载完成了补丁包则可以尝试将程序下载的更新文件解压后覆盖到站点目录,如果提示文件被占用需要手动停止IIS进程池,继续手动完成更新。
6.如果更新后启动失败,可以打开Windows自带的事件查看器查看原因,如果您使用的是自动更新程序,可以尝试将程序自动创建的备份文件(位于运行目录下,按照“backup_年月日时分秒.zip”命名)解压后覆盖到原有目录中,再重启IIS进程池尝试退回原版本。 如果您是手动更新且并未备份,或者退回原版本依然启动失败,请及时联系技术人员处理。
7.更新后执行数据库语句时发生执行错误,可以将发生错误的语句和其之前的语句都删除,继续执行后续的更新语句,更新语句都执行后,再次校验数据库。
若如果错误信息为:
消息 5074,级别 16,状态 1,第 1558 行
对象'DF_oc_TerpMa_Proce_28CEADEE依赖于列'ProcesssubNo'
消息 4922,级别 16,状态 9,第 1558 行
由于一个或多个对象访问此 列,ALTER TABLE ALTER COLUM ProcesssubNo 失败
如果你的数据库知识储备足够,应当可以看出这语句执行失败的原因是因为字段上有约束。遇到此类情况,需要你手动删除约束对象,然后执行更新语句。还有一种方法是直接使用数据库设计器工具,直接修正字段类型。