好久未上CSDN了(散分),顺带来一个问题,有关程序自动更新(熟称:智能客户端或者0接触布署)

johnage 2006-08-24 12:35:29
johnage个人信息 贴出个人信息只说明很早就来了,由于工作忙但很少上CSDN,最近有点闲才上来逛。:)
账号:johnage
可用分: 9690
注册时间: 2001-6-30 9:59:00
最后登陆时间: 2006-8-24 12:16:56
社区帖子数: 15
昵称: 湘军
个人简述: 软件
信誉分: 100

   程序自动更新对少量的程序集,程序集300个,每一程序平均200KB,如果程序集(其中包括资源文件,XML等)非常之多(1000,每一文件平均50KB)有可能不止这个数,且客户使用也很多同时有180位用户使用(这是正常情况下,实际远不止这个数),如果定时去扫描全部文件,效率会快吗?

1.这里有一个需求就是按当前运行的功能需求更新(简称按需更新)。(这里已经实现)
2.如果程序正在运行,如何更新当前运行的程序?提示用户退出程序?哪用户当前操作的数据是否会丢失(由于服务器程序更新,如果客户端没有更新,当前操作的数据是无法保存的)。(现已经实现,采用分布式技术,主要在客户端布署接口,问题:如果接口也更新,也会遇到同样的问题)
3.更新文件是否要断点续传?针对大文件(指1MB以上的)主要是在因特网上使用时,移动办公。

先借用一下此贴,http://community.csdn.net/Expert/topic/4971/4971646.xml?temp=.3086817 此贴说的“我的方法只是大的思路”不解?
...全文
979 61 打赏 收藏 转发到动态 举报
写回复
用AI写文章
61 条回复
切换为时间正序
请发表友善的回复…
发表回复
seven 2007-04-10
  • 打赏
  • 举报
回复
mark
johnage 2006-08-25
  • 打赏
  • 举报
回复
vs2005,是可以不考虑这个问题。结论就是升级。
junny_sa 2006-08-25
  • 打赏
  • 举报
回复
学习.....
路人霆 2006-08-25
  • 打赏
  • 举报
回复
何必这样麻烦,用vs2005的智能客户端部署就好了。
sdav 2006-08-25
  • 打赏
  • 举报
回复
另外,如果用的2005,直接部署到服务器上就好了
sdav 2006-08-25
  • 打赏
  • 举报
回复
Microsoft有一个Updater Block,可以使用一下啦
wuhuiITren 2006-08-25
  • 打赏
  • 举报
回复
接分接分
johnage 2006-08-25
  • 打赏
  • 举报
回复
Reeezak(坚持信念) 想求得更好的思路,如:有选择更新,在服务器文件列表中标记一下哪个是必要更新,哪个是可选更新,可选更新中可能是几个文件作为一组(一个事务)来更新。
johnage 2006-08-24
  • 打赏
  • 举报
回复
谢谢diandian82(点点)提点
boarduck 2006-08-24
  • 打赏
  • 举报
回复
jf
diandian82 2006-08-24
  • 打赏
  • 举报
回复
你可以参考Microsoft得click once
davidbeckham23 2006-08-24
  • 打赏
  • 举报
回复
jf!
renxb198207 2006-08-24
  • 打赏
  • 举报
回复
private bool NeedExitMainProcess(Process p,UpdateInfos updateList)
{
try
{
string basePath = Directory.GetParent(Application.StartupPath).FullName;
Start.MainProcessFile = p.MainModule.FileName;
foreach(ProcessModule pm in p.Modules){
for(int i=0; i< updateList.Count;i++)
{
if(updateList[i].Selected)
{
string file = Path.Combine(basePath , updateList[i].File);
if(FileUtil.IsEqualFileName(pm.FileName,file))
{

return true;
}
collar_bird 2006-08-24
  • 打赏
  • 举报
回复
可不可能,按照一定的规则,在一个时间间隔内,只更新规定部分的文件.
xiaoyaowp 2006-08-24
  • 打赏
  • 举报
回复
mark
idda 2006-08-24
  • 打赏
  • 举报
回复
你可到微软官方网站下载Updater Application Block
http://www.microsoft.com/downloads/details.aspx?FamilyId=C6C17F3A-D957-4B17-9B97-296FB4927C30&displaylang=en
里面有demo以及一些工具,基本上稍微改改配置文件就可以达到你的要求
idda 2006-08-24
  • 打赏
  • 举报
回复
1.这里有一个需求就是按当前运行的功能需求更新(简称按需更新)。
如果用智能客户端,其启动时会自动比较部署位置和本地的版本号是否,如果发现版本号比较新,就会提示下载.
2.如果程序正在运行,如何更新当前运行的程序?提示用户退出程序?哪用户当前操作的数据是否会丢失
智能客户端在程序刚开始运行时检查,其首先运行文件并不是你程序本身.是一个外壳程序,其检查更新完毕后会自动修改配置的xml文件,指明最新文件的位置,启动程序的位置,从而启动你的程序.

3.更新文件是否要断点续传?
智能客户端文件传输使用BITS,其是一种在windows后台运行的传输文件方式, 它会监控网络,在网络空闲的时候去申请传输,故用户不用担心其占带宽. 如果网络失去连接,BITS会自动记录断点位置,在网络恢复后从断点开始下载.其恢复能力是可以信赖的.windows本身的更新程序就是采用这中方式
Reeezak 2006-08-24
  • 打赏
  • 举报
回复
这次认真的看了看lz的帖子
不知道要问什么呢?
好像你们都已经实现了啊
yuzhlhua 2006-08-24
  • 打赏
  • 举报
回复
mark
bobomouse 2006-08-24
  • 打赏
  • 举报
回复
jf
加载更多回复(41)

110,536

社区成员

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

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

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