首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web Service >

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

2013-06-26 
C#如何实现软件的自动更新原来用过socket实现过,通过共享文件夹的方式来实现拷贝的。感觉这个方法可靠性不

C#如何实现软件的自动更新
原来用过socket实现过,通过共享文件夹的方式来实现拷贝的。感觉这个方法可靠性不高。想让大虾们教教我webservice 如何来通信 或者 wcf也行 最好俩个都有。在网上看到的只有客户端请求的程序,想知道怎么弄自己的服务端,有自己的服务器,不知道怎么弄。求教。 c# webservice wcf socket 服务器
[解决办法]
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做得越简单越好,因为它是不变的.

热点排行