关于CS模式客户端自动更新问题 当客户端启动时,自动到服务器上检测最新版本。如果有最新版本就把最新版本下载到客户端服务器上,当下载完时,客户端正在执行目前的进程,如果才能覆盖呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 启动exe的时候检查版本没有就直接丢个进度框出来,把新的exe下载到临时目录,下载完了说要重启应用程序,结束exe的时候加个事件去调个拷贝脚本,脚本里跑ntsd -c q -pn xxx.exe把你的exe全干掉(如果还有的话),完了把新的exe拷过去 http://topic.csdn.net/u/20090813/16/1aaa85f4-afee-49a6-abfe-140259d59791.html这个可以参考一下 我现在刚接手一个软件,里面有个自动更新,就是自动从ftp服务器上检测最新版本,然后下载下来安装;现在碰到的问题就是被防火墙当做病毒,每次自动更新防火墙都会报警;所以准备重写,我也不太会,来学习下 一般都是通过web services/WCF查询服务器进行升级 配置XML文件保存版本信息,查询服务器获取版本如是最新版本就不要升级 还可使用smart client http://topic.csdn.net/u/20090709/11/3b5136ae-7871-4621-acbf-0c425b81ce78.html?22518 在VS.Net 的IDE里进行发布,发布向导会让你设置更新的方式。客户端安装好你的软件之后,每次启动会自动到指定的地方检查是否有最新版本 通过VS2005把程序发布在服务器上(在Project上右键属性,可以看到有个发布的选项卡),其它的机器通过IE访问来安装程序每次客户端打开程序的时候它都会自动检测,如果有新的版本就会提示是否更新局域网内我一般都采用这种方式,广域网没有试过 一般这样做,先查询远程版本号进行对比,然后启动升级程序进程,由升级程序切断主程序进程,覆盖本地主程序或DLL文件,然后启动主程序 也就是建立一个.bat文件,在结束时 调用.bat。bat里面是先干掉该进程。然后再把临时目录的exe考过来 OK,这个方式可以解决。.net原来如此强大~~ 可以的,这些操作你都不用操心,发布程序帮你解决的并且这种方式可以让客户在安装时自动安装 dot net framework 通过WebService及上述方法来实现. 借鉴一下网络游戏的更新方法:先运行AutoUpdate程序,发现有新版本文件就更新之更新完成后,或者不要更新时再启动MyApp,并关闭AutoUpdate 我在之前的项目中编写过一个自动更新程序,方法是将更新程序和客户端程序分开。首先更新程序检测服务器上的源文件的版本号和本地机器上客户端文件是否完整,然后从服务器下载需要的文件覆盖到本地,从进程中启动客户端程序,关闭更新程序。或者你可以直接使用微软的ClickOnce来部署你的程序,但是ClickOnce存在很多不足,客户端的部署如果很复杂的话(比如每个客户端存在不同的资源或者配置文件),ClickOnce就不能处理了,楼主可以仔细研究一下ClickOnce的实现过程设计合乎自己情况的自动更新系统。 采用smartclient智能客户端部署,这样在有新的程序发布后,客户端会提示下载;即使客户端正在执行目前的进程,在下载(覆盖)时也会有提示。 不清楚你用的更新机制是什么样的程序启动,Shown事件里检查更新如果更新,启动ftp更新程序并关闭自己 frmUpdateHint UpdateHint = new frmUpdateHint(LastVersionText); UpdateHint.Icon = Icon; if (UpdateHint.ShowDialog() == DialogResult.OK) { System.Diagnostics.Process.Start(Consts.SERVICE_UPDATE_VERSIONFILE_EXECUATENAME, LastVersionText); Close(); return; }更新程序更新完重新启动系统,带有版本信息的文件最后下载,防止更新失败但版本信息已更新而且如果更新程序本身也有更新的,就把新下载的更新程序存成类似“_更新程序”void BtnClose_Click(object sender, EventArgs e) { if (OK) System.Diagnostics.Process.Start(SERVICE_FOREGROUNDMONITOR_EXECUATENAME); Close(); }系统重新启动后检查有没有“_更新程序”,有则改名为“更新程序”更新更新程序本身 楼主的问题其实很好解决就是在解决方案管理器那里进行发布就可以了,生成安装程序让客户自己安装。这样即可以解决客户的电脑上没有安装dot net framework 问题,也可以解决版本更新问题。更新的版本放在一个 web 服务器上,如果有新版本需要发布,可以将版本重新发布到这个 web 服务器上,客户机每次启动的时候会自动到指定的服务器上检查是否有最新版,并询问客户是否安装楼主自己试几次就会用了,很简单的 下载一个制作更新的软件。弄一个就好了。哪有这么复杂___________________________________我写的vs2005源代码管理器,只有团队资源管理中源码管理的功能。http://topic.csdn.net/u/20091203/10/ca40b678-5443-4a18-a9f6-fad9051d0797.html 30分问个简单的WINFORM的contextMenuStrip1问题(结帖一直是100%) 关于正则表达式的问题 请教高手:字符串的Replace函数的参数是不是不能为变量啊? 网上下了个源码,可是没有csproj文件,怎么办? c#2005中的报表问题 在vs.net中哪里有winsock啊? c#能进行手机软件的编程的吧? 有真本事的进来。。闲人免进。。。C转化C#的小代码。 菜鸟求教 定制控件问题。谢谢! 问一个程序监控另一个程序的问题?? datagridview 单元格屏蔽右键。
没有就直接丢个进度框出来,把新的exe下载到临时目录,下载完了说要重启应用程序,结束exe的时候加个事件去调个拷贝脚本,脚本里跑ntsd -c q -pn xxx.exe把你的exe全干掉(如果还有的话),完了把新的exe拷过去
这个可以参考一下
现在碰到的问题就是被防火墙当做病毒,每次自动更新防火墙都会报警;所以准备重写,我也不太会,来学习下
配置XML文件保存版本信息,查询服务器获取版本如是最新版本就不要升级
还可使用smart client
http://topic.csdn.net/u/20090709/11/3b5136ae-7871-4621-acbf-0c425b81ce78.html?22518
每次客户端打开程序的时候它都会自动检测,如果有新的版本就会提示是否更新
局域网内我一般都采用这种方式,广域网没有试过
也就是建立一个.bat文件,在结束时 调用.bat。bat里面是先干掉该进程。然后再把临时目录的exe考过来
可以的,这些操作你都不用操心,发布程序帮你解决的
并且这种方式可以让客户在安装时自动安装 dot net framework
通过WebService及上述方法来实现.
先运行AutoUpdate程序,发现有新版本文件就更新之
更新完成后,或者不要更新时
再启动MyApp,并关闭AutoUpdate
或者你可以直接使用微软的ClickOnce来部署你的程序,但是ClickOnce存在很多不足,客户端的部署如果很复杂的话(比如每个客户端存在不同的资源或者配置文件),ClickOnce就不能处理了,楼主可以仔细研究一下ClickOnce的实现过程设计合乎自己情况的自动更新系统。
如果更新,启动ftp更新程序并关闭自己 frmUpdateHint UpdateHint = new frmUpdateHint(LastVersionText);
UpdateHint.Icon = Icon;
if (UpdateHint.ShowDialog() == DialogResult.OK)
{
System.Diagnostics.Process.Start(Consts.SERVICE_UPDATE_VERSIONFILE_EXECUATENAME, LastVersionText);
Close();
return;
}
更新程序更新完重新启动系统,带有版本信息的文件最后下载,防止更新失败但版本信息已更新
而且如果更新程序本身也有更新的,就把新下载的更新程序存成类似“_更新程序”void BtnClose_Click(object sender, EventArgs e)
{
if (OK)
System.Diagnostics.Process.Start(SERVICE_FOREGROUNDMONITOR_EXECUATENAME);
Close();
}
系统重新启动后检查有没有“_更新程序”,有则改名为“更新程序”更新更新程序本身
弄一个就好了。
哪有这么复杂
___________________________________
我写的vs2005源代码管理器,只有团队资源管理中源码管理的功能。
http://topic.csdn.net/u/20091203/10/ca40b678-5443-4a18-a9f6-fad9051d0797.html