Winform自动更新功能

米娅 2014-02-14 11:26:36
看了很多Winform自动更新的功能的文章,也明白自动更新功能实现的思路。但是仍然存在一些疑问。
目前,我下载了一个自动更新的Demo程序。下载地址(http://down.51cto.com/data/246022或http://download.csdn.net/detail/jekytan/4242666#comment)

第一步:下载之后,我编写了一个更新使用的UpdateList.xml

<?xml version="1.0" encoding="gb2312" ?>
<AutoUpdater>
<Description>ItemSoft autoUpdate</Description>
<Updater>
<Url>http://219.138.226.136/SoftUpdate/</Url>
<LastUpdateTime>2014-01-29</LastUpdateTime>
</Updater>
<Application applicationId = "ItemSoft">
<EntryPoint>ItemSoft.exe</EntryPoint>
<Location>.</Location>
<Version>1.0.0.0</Version>
</Application>
<Files>
<File Ver="1.0.0.0" Name= "ItemSoft.exe" />
<File Ver="1.0.0.0" Name= "TxtResultFile.txt" />
</Files>
</AutoUpdater>

在编写了一个ItemSoft的程序,其中包含一个*.txt文件。txt文件此时内容为“测试成功!”

第二步:在服务器的IIS上新建网站,把ItemSoft.exe、TxtResultFile.txt及UpdateList.xml放上去
(http://219.138.226.136/SoftUpdate/),然后,修改txt文件的内容为“测试成功!版本已更新!”,再修改xml为

<?xml version="1.0" encoding="gb2312" ?>
<AutoUpdater>
<Description>ItemSoft autoUpdate</Description>
<Updater>
<Url>http://219.138.226.136/SoftUpdate/</Url>
<LastUpdateTime>2014-01-29</LastUpdateTime>
</Updater>
<Application applicationId = "ItemSoft">
<EntryPoint>ItemSoft.exe</EntryPoint>
<Location>.</Location>
<Version>1.1.0.0</Version>
</Application>
<Files>
<File Ver="1.1.0.0" Name= "ItemSoft.exe" />
<File Ver="1.1.0.0" Name= "TxtResultFile.txt" />
</Files>
</AutoUpdater>


第三步:把ItemSoft.exe、TxtResultFile.txt及UpdateList.xml(未修改的文件)存放在下载的自动更新程序(可运行)的bin目录的Debug文件夹下,最后运行自动更新程序。


这样测试的时候,没办法自动更新。不知道怎么搞,应该怎么调试?请各位指教!!!
...全文
541 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
mao_ppp 2014-02-28
  • 打赏
  • 举报
回复
引用 1 楼 huanggreat 的回复:
给个思路, 开启更新exe 关闭当前程序exe 下载文件覆盖, 启动 程序exe 。 还不行,就发源码给你吧、 留个邮箱、
375693060@qq.com 求给我发一份。我正需要阿
hageen_dazs 2014-02-27
  • 打赏
  • 举报
回复
通过FTP或者其他方式连接到服务器更新文件,更新文件夹中新建一个配置文件,里面存放一个更新编号,当客户端打开客户端(实际是更新程序),连接FTP并且读取配置文件,如果配置文件中的编号与本地客户端配置文件不一样的话,那么就下载服务端上需要更新的文件,下载成功后,关闭更新程序,启动登录程序。
米娅 2014-02-27
  • 打赏
  • 举报
回复
虽然找到解决的方法,但希望找到跟合适的方法!希望有高手过来分享。
  • 打赏
  • 举报
回复
给个思路, 开启更新exe 关闭当前程序exe 下载文件覆盖, 启动 程序exe 。 还不行,就发源码给你吧、 留个邮箱、[/quote] 也给我发个呗,谢谢!153169993@qq.com[/quote]
米娅 2014-02-20
  • 打赏
  • 举报
回复
引用 20 楼 shimin555 的回复:
我个人认为用MD5去验证是否更新比较好点,也比较保险点,而且吧 用wcf写自动更新也不错, 现在我正在学用wcf去实现自动更新的功能
有好的方法可以分享一下源码, 详细讲解一下! 你说的MD5验证更新, 这里就有:http://www.sufeinet.com/forum.php?mod=viewthread&tid=7033&page=1#pid26972
米娅 2014-02-19
  • 打赏
  • 举报
回复
引用 17 楼 chaoyangzhixue 的回复:
别光邮箱悄悄的发文件,共享一下源码吧。
这是ClickOnce的详细操作:http://www.sufeinet.com/thread-2187-1-1.html 其他方式的代码共享:http://download.csdn.net/detail/happying_e/6936327 具体的配置方式还没搞清楚。 求讲解
  • 打赏
  • 举报
回复
别光邮箱悄悄的发文件,共享一下源码吧。
米娅 2014-02-19
  • 打赏
  • 举报
回复
有愿意详细讲解的么?
聆听灬莫问 2014-02-19
  • 打赏
  • 举报
回复
我个人认为用MD5去验证是否更新比较好点,也比较保险点,而且吧 用wcf写自动更新也不错, 现在我正在学用wcf去实现自动更新的功能
米娅 2014-02-19
  • 打赏
  • 举报
回复
米娅 2014-02-18
  • 打赏
  • 举报
回复
引用 13 楼 ysd_xwl 的回复:
学习了,这个需要好几部分来实现,你是要实现自动升级吧
是的。客户端安装了程序后,每次启动时自动检测服务器上的版本与本机客户端的版本是否一致,不一致则更新版本。
弱水垂钓 2014-02-18
  • 打赏
  • 举报
回复
MoveFileEx MOVEFILE_DELAY_UNTIL_REBOOT
ysd_xwl 2014-02-18
  • 打赏
  • 举报
回复
学习了,这个需要好几部分来实现,你是要实现自动升级吧
遥此比拟 2014-02-18
  • 打赏
  • 举报
回复
米娅 2014-02-18
  • 打赏
  • 举报
回复
ls说的仅仅是给了一个思路。 思路都差不多,也有差不多的代码。但是就是还未搞清楚怎么配置。怎么弄。 有没有人详细讲解一下!
雨雪纷纷 2014-02-18
  • 打赏
  • 举报
回复
学习了,长知识了
G_Aries 2014-02-17
  • 打赏
  • 举报
回复
引用 1 楼 huanggreat 的回复:
给个思路, 开启更新exe 关闭当前程序exe 下载文件覆盖, 启动 程序exe 。 还不行,就发源码给你吧、 留个邮箱、
求源码 邮箱897878763@qq.com 谢谢
captainyanyan 2014-02-17
  • 打赏
  • 举报
回复
引用 1 楼 huanggreat 的回复:
给个思路, 开启更新exe 关闭当前程序exe 下载文件覆盖, 启动 程序exe 。 还不行,就发源码给你吧、 留个邮箱、
也给我发个呗,谢谢! 1601995521@qq.com
米娅 2014-02-17
  • 打赏
  • 举报
回复
引用 1 楼 huanggreat 的回复:
给个思路, 开启更新exe 关闭当前程序exe 下载文件覆盖, 启动 程序exe 。 还不行,就发源码给你吧、 留个邮箱、
没人回答么
Benjay77 2014-02-17
  • 打赏
  • 举报
回复
其实一个最简单的办法 就是登陆比对版本号 如果比服务器滞后 则重新下载覆盖安装
加载更多回复(5)

110,539

社区成员

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

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

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