服务是随系统启动的,定时检查有新版本,假设,新文件已经下载到了 Update 目录,应该如何自动更新呢?
目前的思路:
增加一个 Update.exe 外部程序,执行 Update.exe 并停止后台服务,覆盖主程序,启动后台服务。
想求助 V 友们,有没有更好的方法,甚至连第二个 exe 都不需要的,有吗?
1
JackyBao 2017-02-06 15:39:04 +08:00
我以前也是用 Update.exe 来做的,但是我觉得肯定有更好的办法。
|
2
RE OP @JackyBao 桌面程序用 Update.exe 或者覆盖安装,都挺常见的。但因为这个是 Windows 服务,我担心在程序之间切换,会有权限或其它问题,因为 Windows 服务有可能只是系统开机了、用户还没登录时就启动了。
|
3
yangff 2017-02-06 15:45:17 +08:00
chrome 大概是一个启动器,然后每个版本一个目录
Windows 常见的做法 PendingFileRenameOperations |
5
herozhang 2017-02-06 15:50:48 +08:00 via iPhone
用系统内置的定时任务来做?就不用第二个 exe 了
|
6
stackboom 2017-02-06 15:51:29 +08:00 1
提供一个思路:
1. 定义统一服务接口 包含服务执行的 excute() 方法,把相关实现编译成 dll 放入指定文件夹。 2. 服务启动新建 AppDomain 加载文件夹的 dll 执行方法。 3. 服务监控文件夹变化,如果发生更改,卸载之前 AppDomain 重复 2. |