日期:2014-05-18 浏览次数:21178 次
try
{
System.IO.File.Copy(DownLoadPath, App.PPath, true);
}
catch (Exception ex)
{
if (ex is System.IO.IOException)
{
System.Diagnostics.Process[] Ps = System.Diagnostics.Process.GetProcessesByName(App.PPName);
if (Ps.Length == 0)
{
throw ex;
}
else
{
bool isrun = false;
foreach (System.Diagnostics.Process p in Ps)
{
if (p.MainModule.FileName == App.PPath)
{
isrun = true;
break;
}
}
if (isrun)
{
MessageBox.
------解决方案--------------------
文件正在用,你要先关闭当前的系统,才能覆盖.
网上有许多例子.
关键词"AutoUpdate"
------解决方案--------------------
更新思路:
前提条件,先启动更新程序,下载,完毕后,启动主程序;
1、客户端更新程序需要有记忆体,记载哪些文件更新,并和服务器上传时间一致;
服务端:a.xx 2010-09-08
b.xx 2010-09-08
a.xx 2010-09-07
客户端记忆体:
b.xx 2010-09-06
a.xx 2010-09-06
启动更新程序后,对照服务端,发现有a.xx 2010-09-08和2010-09-07需更新,那么就取08日的。
发现有b.xx 2010-09-07也需要更新。
2、只要更新完毕一个文件,记忆体就做记载,否则认为下载失败。