CheckUpdate.Net是.Net C/S下一个检查更新程序。现有的检查更新方式多种多样,更新程序也大不相同。园子里也有个比较出名的OSAU(参考了他的界面),微软也有比较方便的ClickOnce。自己也尝试了其他的,发现没有合适的就决定自己写一个。 考虑到复用,在.Net Framework2.0下开发。主要就是利用WebClient下载服务器网站目录下的文件,安全性暂没有考虑,比较适用于小型项目。 源代码托管:http://git.oschina.net/xcong/CheckUpdate.Net
支持单个或多个文件更新 读取服务端XML配置文件,获取需要修改或新增的文件,然后进行下载,下载完成之后,更新本地版本。
支持更新更新程序本身 通过配置本地的XML文件,放置更新程序的目录。主程序启动时,进行检查,处理。
服务端支持程序更改配置文件,无需手动更改XML
将主程序运行需要的文件通过XML配置起来
将Update.xml、UpdateFileClient.exe、UpdateFileCommon.dll添加到主程序相同目录,主程序需要引用UpdateFileCommon.dll。 将主程序运行所需的文件通过XML进行配置,放在File节点下,初始版本为1。 配置服务端XML所在路径,当前版本、版本对应的值、临时文件夹、更新程序名称可以采用默认值。
实现更新程序的更新
需要在主程序中添加一行代码,进行检查临时文件夹是否包含更新程序,如果有,进行剪切操作。
using UpdateFileCommon; //发现新的更新程序,进行剪切到根目录 VersionHelper.CutNewUpdateEXE();
按需添加检查更新代码
可以在程序启动时或者点击按钮进行检查更新操作。 检查更新是弹窗进行提醒,需要传两个参数,一个更新描述,一个是否强制更新。对应XML节点是服务端XML的ReleaseNote和IsMustUpdate。NextShowEvent 事件是点击按钮下次提醒需要执行的操作。
//检查版本更新 if (VersionHelper.IsRequiredUpdate()) { string xmlPath = System.AppDomain.CurrentDomain.BaseDirectory + "UpdateFile.xml"; if (File.Exists(xmlPath)) { //加载XML路径 XmlDocument doc = new XmlDocument(); doc.Load(VersionHelper.GetLoaclServerConfigURL(xmlPath)); //获取值 var releaseNote = VersionHelper.GetServiceReleaseNote(doc); var isMustUpdate = VersionHelper.GetServiceIsMustUpdate(doc); PromptingForm form = new PromptingForm(releaseNote, isMustUpdate); //赋值委托 form.NextShowEvent += delegate { //执行xxx }; form.ShowDialog(); } }
UpdateFileCommon.dll是主程序必须引用的。里面包含更新提示窗口。包含版本辅助类等信息。
The .NET Framework 3.5 SP1 included a bunch of new features, but as a Service Pack it also included a number of bug fixes and many improvements. These fixes included all aspects of the .NET Framework
原文 http://www.kynosarges.org/DotNetVersion.html Inno Setup by Jordan Russell is a great installation scripting program, but lacks a built-in function to determine the .NET Framework version installed
public bool BatchUpdate(int id, string reason) { using (SqlConnection connection = new SqlConnection(DbHelperSQL.connectionString)) { connection.Open();
原文 | Máňa Píchová 翻译 | 郑子铭 对于 .NET 的每个新版本,我们都希望发布一篇博客文章,重点介绍网络的一些变化和改进。在这篇文章中,我很高兴谈论 .NET 6 中的变化。 这篇文章的上一个版本是 .NET 5 网络改进。 HTTP HTTP/2 窗口缩放 随着 HTTP/2 和 gRPC 的兴起,我们的客户发现 SocketsHttpHandler 的 HTTP/2 下载速
ADO.NET是一组公开数据访问服务的类,为创建分布式数据共享应用程序提供了一组发放的组件 ADO.NET访问数据库原理 1.ADO.NET的主要组件 需要用到ADO.NET提供的两个组件:NET数据提供程序和DAtaSet(数据集). (1).NET数据通提供程序:k可以实现数据集和对数据的快速,只读只进访问。 (2)DataSer(数据集):ADO.NET的断开式的核心组件。 2.NET数据提
1.简述 private、 protected、 public、internal 修饰符的访问权限 private : 私有成员, 在类的内部才可以访问(只能从其声明上下文中进行访问)。 protected : 保护成员,该类内部和从该类派生的类中可以访问。 Friend:友元 ,声明 friend 元素的程序集中的代码可以访问该元素,而不能从程序集外部访问。 Protected Friend:在
前言 在调试项目中遇到了一个 前所未有的bugjava.net.SocketTimeoutException: connect timed out 昨天还能一直访问服务器接口 今天来就超时了 一直请求不到 几经周折 把所有能尝试的方法都试了 还是不行 翻阅几个小时的资料 终于解决了问题 在此记录一下 一把辛酸泪 SocketTimeout java.net.SocketTimeoutExcepti
今天,我们很高兴发布 .NET 7 预览版 2。.NET 7 的第二个预览版包括对 RegEx 源生成器的增强、将 NativeAOT 从实验状态转移到运行时的进展,以及对"dotnet new"CLI 的一系列重大改进经验。这些可供您立即获取_并_开始尝试新功能,例如: 在编译时使用源生成器而不是在运行时使用较慢的方法来构建专门的 RegEx 模式匹配引擎。 dotnet new利用 SDK 改
; 脚本由 Inno Setup 脚本向导 生成! ; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档! #define MyAppName "autoPing" #define MyAppVersion "3.0" #define MyAppPublisher "枫浪软件工作室" #define MyAppURL "http://blog.csdn.net/fl_xin" #d
前言: 使用Pull解析XML,使用真机调试的时候遇到两个报错: java.net.SocketTimeoutException: connect timed out java.net.ConnectException: Failed to connect to 找了很多资料,终于解决这个问题! 正文 java.net.SocketTimeoutException: connect timed