求解:winform做的程序怎么实现自动升级更新功能

keke0404 2011-03-09 10:30:59
我做了一个winform程序,现在想做一个自动更新的功能,当用户登录的时候会判断版本是否是最新的,如果不是最新的则要求程序进行升级,没做过这个,毫无思路,网上搜了一下,大都说用webservice,不懂啊!有做个这方面的请帮忙讲解下,有code和详细的讲解最好!
...全文
497 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
yalan 2011-03-18
  • 打赏
  • 举报
回复
每次发布程序,程序集的Assembly版本号就会自动更新,可以使用Assembly.GetExecutingAssembly().GetName().Version方法来获取程序集版本号,如果服务器端程序集版本号高则升级
EastonSoft 2011-03-18
  • 打赏
  • 举报
回复
我很久以前就弄过,是跟上面说的差不多。先要在服务器上面放一个文件,然后定时比对服务器上面的版本号与自身版本号。如果不一样就提示更新。
ycproc 2011-03-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fangxinggood 的回复:]
推荐发布成ClickOnce的,版本控制自动检查都由.net framework完成,查查这方面的资料。

自定义的话,
我以前做过一个是用到EnterpriseLibrary的Update Application Block(最新的已经没有了)
需要部署到服务端manifest,然后自己下并比较。(无服务端应用程序)

现在的话,我觉得简单的就用个xml发布在IIS上,就可以控制了。……
[/Quote]

很简单对比
大狗狗 2011-03-18
  • 打赏
  • 举报
回复
我是这么做的:

先租用虚拟空间,把程序文件上传到空间里。

在WinForm窗体显示前,使用WebClient(这个类使用简单,你也可以用其它更强的C#网络通信类)下载你空间中的程序版本信息(你可以将版本信息放到一个空间中的txt文件中),高于当前版本,则提示用户更新软件。
宝_爸 2011-03-18
  • 打赏
  • 举报
回复
热情的菜鸟 2011-03-18
  • 打赏
  • 举报
回复
这是我从前的一片帖子,不过加入了代码混淆,相信你也能用到。


http://topic.csdn.net/u/20100117/00/5395816C-2A16-45BB-9A14-B1FB5E367887.html
luluyy 2011-03-18
  • 打赏
  • 举报
回复
写服务` 用服务进行程序或者DLL版本号的对比`相同就是没有更新如果不相同就是更新了
热情的菜鸟 2011-03-18
  • 打赏
  • 举报
回复
虽然不用写代码,但是很麻烦的。

主要就是 ClickOnce 发布,你每次发布修改下版本号就OK了,他会自动更新的。
keke0404 2011-03-09
  • 打赏
  • 举报
回复
没人知道吗?
机器人 2011-03-09
  • 打赏
  • 举报
回复
推荐发布成ClickOnce的,版本控制自动检查都由.net framework完成,查查这方面的资料。

自定义的话,
我以前做过一个是用到EnterpriseLibrary的Update Application Block(最新的已经没有了)
需要部署到服务端manifest,然后自己下并比较。(无服务端应用程序)

现在的话,我觉得简单的就用个xml发布在IIS上,就可以控制了。
先做个dummy.exe用于检查升级,通过
System.Net.WebClient.DowndLoadString("http://xxx/update.xml")
这个version.xml格式完全可以自定义。比如:

<updates>
<update version="1.0.0.0">
<resource name="A.dll" location="http://xxx/1.0.0.0/A.dll" />
<resource name="B.dll" location="http://xxx/1.0.0.0/B.dll" />
...
</update>
<update version="1.0.0.1">
<resource name="A.dll" location="http://xxx/1.0.0.1/A.dll" />
<resource name="B.dll" location="http://xxx/1.0.0.1/B.dll" />
...
</update>
<updates>


Download下来然后和本地的update.xml比较,把新的version下的dll再用
WebClient.DownloadFile 取下来替换掉本地文件。
然后用dummy.exe启动main.exe

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧