(求高手指教)如何实现程序的自动升级?(100分)

  • 主题发起人 主题发起人 skidrow
  • 开始时间 开始时间
S

skidrow

Unregistered / Unconfirmed
GUEST, unregistred user!
delphi+sql server结构的程序。大概是一个数据库服务器,带10~20台客户端。如果我重新
更新了程序的部分功能,如何做到只在服务器上更新一次,而第二天客户端启动程序自动发现并
更新本地程序的功能呢?
请各位高手赐教,说的越详细越好。
 
使用AutoUpgrader控件很容易做到!
 
一个简单实用的办法是在服务器端将客户端程序所在目录共享。
然后作批处理文件如下:
@echo off
copy 服务器名//..目录名../文件名 客户端执行文件所在目录
...(可单个地拷贝所要的文件,也可用通配符*、?之类的。)
最后一句为客户端要执行的程序。
然后在客户端固定所要用到的执行文件的目录。拷入做好的批处理。
做一个快捷方式到桌面。记住,属性设置里勾上“退出时关闭选项”,
如果你的程序对运行路径有要求,也得设好。
讲得够详细了吧。
不过就是每次运行程序时总有一个DOS窗口一闪而过,看起来不太舒服,但这是最简单的
办法了,要好看也可以,做在程序里,只是麻烦了些。
 
louhong 高人,如果做到程序里呢?该怎么做?程序结构该怎么划分?你有现成的东西吗?
只要你的程序结构和实现该功能的代码就可以了。
 
因为用到了数据库,可以建一张记录版本号的表,每次打开应用程序,首先检查
一下当前的版本号(记录在一个本地单独的文件中),和数据库中的版本号是否
一致,如果数据库的是新的,那就启动一个程序,去下载新更新的程序。
至于实现的代码,涉及一些商业原因不能共享。实现的想法简单就是这样了。
在需要更新的时候,调用更新程序,并关闭当前程序,因为要覆盖应用程序。
 
服务器开ftp服务,取ftp上文件的日期,如果和本地的不同就更新。
客户端需专门写update程序.update完再call主程序
 
要是客户端的机子没有开呢?
 
首先程序先要用包的形式来做这样一来每个子模块都很小!
然后在client端做个更新模块,检查网上和client的,如果两者不同就down新的
文件下来! 还有就是把各子模块放进数据库,因为子模块很小,可以放进去!
用。client每次启动时就可以检查有没有新的程序!
 
后退
顶部