软件升级问题的研究

nanxun1027 2010-09-27 04:10:41
请大家帮帮忙,我在做毕业论文,是关于软件升级的,基于.NET

我想知道一下,现在主流的软件升级的方法、工具、第三方控件等都有哪些?各自都有什么特点?

希望高手指教!
...全文
251 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
uvvvw 2010-09-28
  • 打赏
  • 举报
回复
学习中
gavinmark 2010-09-28
  • 打赏
  • 举报
回复
mark一下。关注中- -!
foxwfb 2010-09-28
  • 打赏
  • 举报
回复
我以前一套软件的自动升级是这样做的,你可以参考一下,

先在服务端,也就是你发布更新的地方建立一个web服务, 客户端调用这个web服务的时候,获取服务端的文件名及文件md5码,再与客户端的当前目录进行比较,如果客户端文件名不存在或已存在的文件md5码不一致,从远程更新替换客户端的文件,实现更新。
lijungui2008 2010-09-28
  • 打赏
  • 举报
回复
直接替换文件
nanxun1027 2010-09-28
  • 打赏
  • 举报
回复
请问用ftp升级软件的缺点是什么啊?
nanxun1027 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 32 楼 3000sunqin 的回复:]
我个人觉得你的研究方向是错误的,使用FTP、HTTP、Web Services、ClickOnce、Updater那只是手段,并没有什么可以说的,真正的难点在于解决如何只更新部分文件,解决不同文件之间的耦合关系,解决有问题后的版本回滚问题。
[/Quote]

高手,就是高手!
学习中!
非常赞同!
SZ31654270 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 32 楼 3000sunqin 的回复:]
我个人觉得你的研究方向是错误的,使用FTP、HTTP、Web Services、ClickOnce、Updater那只是手段,并没有什么可以说的,真正的难点在于解决如何只更新部分文件,解决不同文件之间的耦合关系,解决有问题后的版本回滚问题。
[/Quote]

严重同意
3000sunqin 2010-09-28
  • 打赏
  • 举报
回复
我个人觉得你的研究方向是错误的,使用FTP、HTTP、Web Services、ClickOnce、Updater那只是手段,并没有什么可以说的,真正的难点在于解决如何只更新部分文件,解决不同文件之间的耦合关系,解决有问题后的版本回滚问题。
nanxun1027 2010-09-28
  • 打赏
  • 举报
回复
clickOnce 有什么局限啊?会遇到什么问题啊?能说详细点吗?

我还没有用过clickOnce,请指教
kenesyu 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 ireenter 的回复:]
引用 9 楼 kenesyu 的回复:

clickonce 发布 ~~行不?


没有问题,但有局限,会碰到一些问题。
[/Quote]

大哥我服了你了。。。。
wt57191187 2010-09-28
  • 打赏
  • 举报
回复
最近给也写了个winform程序的自动升级程序,思路是:
1.本地config文件中记录着当前程序组件的版本号清单

<LocalFile key="xxx.cab" date="2010-09-1" lastver="1.0.0.1" />

2.服务器上也有一份XML文件,记录着最新的的程序组件版本号。

<RemoteFile key="xxx.cab" date="2010-9-11" url="http://www.xxxx.com.cn/Downloads/xxx.cab" lastver="1.0.0.1" />

关于更新的清单我只记录了一个,因为下载的更新包是一个CAB压缩文件,我把需要更新的文件全压缩在里面了
3.程序启动后,下载服务器上的XML并解析,将两个版本号进行对比,如不同,则提示用户有组件需要更新。
4.用户点击更新时,关闭当前主程序,起已个PROCESS去启动更新程序。关于主程序和更新程序,是两个独立的程序,因为我想实现自动升级,但不关闭主程序的话,在升级时会导致某些组件正在使用而无法替换。
4.开始下载更新包,这里你可以做点效果,我是做成和360系统修复漏洞时的效果。下载完后,proess执行CMD命令,去解压下载的cab跟新包。之后备份原来的组件,替换,日志写入,更新本地config的组件版本号
ireenter 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 kenesyu 的回复:]

clickonce 发布 ~~行不?
[/Quote]

没有问题,但有局限,会碰到一些问题。
nanxun1027 2010-09-28
  • 打赏
  • 举报
回复
请高手说一下 WCF升级应用软件的具体实现过程
wuyq11 2010-09-27
  • 打赏
  • 举报
回复
一般都是通过web services/WCF查询服务器进行升级
配置XML文件保存版本信息,查询服务器获取版本如是最新版本就不要升级
还可使用smart client
自动升级
File.WriteAllText("test.bat",
@"@echo off
:run
del %1 >nul
if exist %1 goto run
del test.bat
");
ProcessStartInfo p= new ProcessStartInfo();
p.FileName = "test.bat";
p.Arguments = System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName;
p.WindowStyle = ProcessWindowStyle.Hidden;
Process.Start(p);
http://topic.csdn.net/u/20090422/08/69f9713b-3982-4313-ab11-7fb6eefdcf93.html
nanxun1027 2010-09-27
  • 打赏
  • 举报
回复
刚找到clickOnce 在vs2010下的部署
http://msdn.microsoft.com/library/t71a733d.aspx
guyehanxinlei 2010-09-27
  • 打赏
  • 举报
回复
做好了,还是一件不简单的事情的
nanxun1027 2010-09-27
  • 打赏
  • 举报
回复
在msdn技术文档中,只支持vs2005 vs2008 最高到.net Framework 3.0

http://msdn.microsoft.com/zh-cn/library/y18k4htb(v=VS.90).aspx

给点意见,给点参考
kenesyu 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 nanxun1027 的回复:]
现在vs2010,能支持ClickOnce吗?
[/Quote]

肯定支持啊。
kenesyu 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 nanxun1027 的回复:]
呵呵,见笑、见笑
对clickOnce,我是一点都不了解,现在赶紧了解一下
[/Quote]

很简单的,就是你在发布程序的时候选上ClickOnce就行了~
然后会生成一个Html页面,在哪个页面上就可以直接安装~
而且下次更新了程序会自动更新你不用去管他了
nanxun1027 2010-09-27
  • 打赏
  • 举报
回复
现在vs2010,能支持ClickOnce吗?
加载更多回复(14)

111,129

社区成员

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

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

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