欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

c#怎么实现软件的自动更新

更新时间: 2014-01-05 01:59:55 责任编辑: Author_N1

 

C#如何实现软件的自动更新
原来用过socket实现过,通过共享文件夹的方式来实现拷贝的。感觉这个方法可靠性不高。想让大虾们教教我webservice 如何来通信 或者 wcf也行 最好俩个都有。在网上看到的只有客户端请求的程序,想知道怎么弄自己的服务端,有自己的服务器,不知道怎么弄。求教。
--参考方法--
1. 直接挂一个http网站,然后更新文件都在上面,有xml啥的记录版本;
2. 给程序加一个shell,shell是不变的,所以你现在看到qq啥的都是platform,每次先启动shell访问网站,看看有没有新版本,有的话就更新本地文件;
3. http方便一些,web service的没有弄过,可以试试。

--参考方法--
比较服务器文件和本地文具hash码,如果不一样,则下载下来覆盖本地的
如果当前程序正在运行,需要提示用户退出主程序才能更新
给你一个下载文件类(你根据需要下载的文件列表做成多线程)
using System;
using System.Net;

namespace AutoUpdate
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public class clsDownLoad2
{
public clsDownLoad2()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

public bool DownLoad(string strRemoteFile, string strLocalFile)
{
WebClient wc = null;
try
{
wc = new WebClient();
wc.DownloadFile(strRemoteFile, strLocalFile);
}
catch
{
return false;
}
finally
{
if(wc!=null)
{
wc.Dispose();
wc = null;
}
}
return true;
}

 

}
}

--参考方法--
服务端不用写代码啊,你看QQ升级,就一个升级客户端,它最多去服务端验证一下,剩下的都是客户端处理下载
--参考方法--
服务端所有文件列表哈希码你可以先生成成一个文本文件,客户端先下载这个文本文件,然后挨个跟本地文件哈希码比较,不一致的就下载
--参考方法--
客户端必须能访问到服务端上最新的文件列表,肯定有url
--参考方法--
引用:
引用:1. 直接挂一个http网站,然后更新文件都在上面,有xml啥的记录版本;
2. 给程序加一个shell,shell是不变的,所以你现在看到qq啥的都是platform,每次先启动shell访问网站,看看有没有新版本,有的话就更新本地文件;
3. http方便一些,web service的没有弄过,可以试试。
哦,http用的什么……

服务器端就是一个http网站,里面都是文件,通过http协议访问而已。
--参考方法--
用ClickOnce发布即可,MSDN有详细说明
--参考方法--

支持用Shell这种方法

shell做得越简单越好,因为它是不变的.

上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 01:59:55
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/4276/
本文WWW.DOC100.NET DOC100.NET版权所有。