Winform程序自动更新我也是第一次做,网上找了自动更新的源码,后来又根据在网上看到的一些方法,自己试了很久,最终还是有写错误,所以花了钱让别人帮忙调试成功的,下面是我自己捣腾出来的,方便大家借鉴,如果有什么错误的地方欢迎指正.

1、由于我是通过服务器的IIS发布自动更新的,更新之前先手动把程序复制到IIS服务器的目录下面,做一些更改,客户端才能正常自动更新。所以第一步是不熟IIS服务器(本人系统windows8):
按照上面的方式,选了之后点确定,系统会自动添加这些内容,然后:
网站建立好了之后,把写好的需要更新的文件放入你选的物理路径对应的文件目录下面就OK。
2、网站建立好了,那么下面就是要想办法搞更新了,也就是从服务器更新文件到客户端,至于具体的过程和中心思想我就不赘述了,网上很多。
3、自动源码下载地址找不着了,如果有需要的,请留邮箱,我再发.
4、把自动源码生成类库,然后在你的主程序引用该类库,把下图的两个文件和你的主程序放在同一个文件夹下面:
5、主程序的调用,在主程序里面调用我是放到登录窗体之前的,由于我没办法控制程序是否需要更新,所以我需要建立一个过程,就是在数据库建立一个表,包括两个字段
如上图,New字段是保存最新的版本,Old是保存前一次的版本.。
using Mulaolao.Forms;
using Mulaolao.Procedure;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using Mulaolao.Other;
using System.Threading;
using StudentMgr;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
namespace Mulaolao
{
static class Program
{
//private static Mutex mutex;
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main( )
{
Application.EnableVisualStyles( );
Application.SetCompatibleTextRenderingDefault( false );
//读取表
DataTable da = SqlHelper.ExecuteDataTable( "SELECT * FROM R_UpdateforOrder" );
string news = "", old = "";
//如果表中没有任何数据,则直接登录,不用更新
if (da.Rows.Count < 1)
{
//设置登录成功之后关闭登录窗体 显示主窗体
Login lg = new Login( );
lg.StartPosition = FormStartPosition.CenterScreen;
lg.ShowDialog( );
if (lg.DialogResult == DialogResult.OK)
{
Application.Run( new Form1( ) );
}
else
{
return;
}
}
else
{
//如果表中的新版本和老版本一致,也不需要更新
news = da.Rows[0]["New"].ToString( );
old = da.Rows[0]["Old"].ToString( );
if (news == old)
{
//设置登录成功之后关闭登录窗体 显示主窗体
Login lg = new Login( );
lg.StartPosition = FormStartPosition.CenterScreen;
lg.ShowDialog( );
if (lg.DialogResult == DialogResult.OK)
{
Application.Run( new Form1( ) );
}
else
{
return;
}
}
else
{
//如果表中的新版本和老版本不一致 则需要把老版本更新成新版本 同时启动自动更新窗口
SqlHelper.ExecuteNonQuery( "UPDATE R_UpdateforOrder SET Old=@Old", new SqlParameter( "@Old", news ) );
System.Diagnostics.Process.Start( Application.StartupPath + @"\AutoUpdate.exe" );
}
}
}
}
}
下一步即可,完成之后会自动启动更新后的主程序。
6、说说UpdateList.xml里面的主要参数:
下面这个是我写的更新版本(表中New字段)的程序,放在客户端,第三张图里面的版本更新文件夹里面,每次更新服务器之前先运行这个程序,更新数据库最新版本:
以上内容就是我自己花了钱折腾出来的不怎么先进的方法,没办法,谁让自己入行不久,没什么经验,自己也搞不出先进的来,欢迎大家及时指正。其实主要的步骤:先建立IIS服务器-->新建网站-->把主程序文件、更新文件、版本更新一股脑放在同一个文件夹下面-->主程序调用更新程序(主要是判断什么时候进行自动更新)-->把自动更新文件里面的参数配置好-->数据库里面的版本对照表建好-->更新之前在服务器覆盖住程序,修改自动更新xml文件内容,运行版本更新-->等待客户端自己更新
# Winform
# 程序自动更新
# C# Winform自动更新程序实例详解
# Winform使用FTP实现自动更新
# 主程序
# 自动更新
# 放在
# 客户端
# 我是
# 好了
# 花了
# 建立一个
# 新版本
# 类库
# 有什么
# 也不
# 是有
# 也就
# 不出
# 下载地址
# 控制程序
# 就不
# 什么时候
# 没有任何
相关文章:
Swift中switch语句区间和元组模式匹配
如何在西部数码注册域名并快速搭建网站?
网站制作模板下载什么软件,ppt模板免费下载网站?
如何获取免费开源的自助建站系统源码?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
网站制作软件有哪些,制图软件有哪些?
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
如何快速搭建高效服务器建站系统?
定制建站哪家更专业可靠?推荐榜单揭晓
电商网站制作公司有哪些,1688网是什么意思?
代购小票制作网站有哪些,购物小票的简要说明?
大连网站制作公司哪家好一点,大连买房网站哪个好?
如何在IIS7上新建站点并设置安全权限?
h5在线制作网站电脑版下载,h5网页制作软件?
建站之星各版本价格是多少?
如何快速使用云服务器搭建个人网站?
昆明网站制作哪家好,昆明公租房申请网上登录入口?
郑州企业网站制作公司,郑州招聘网站有哪些?
贸易公司网站制作流程,出口贸易网站设计怎么做?
红河网站制作公司,红河事业单位身份证如何上传?
如何生成腾讯云建站专用兑换码?
如何通过老薛主机一键快速建站?
c# 在高并发下使用反射发射(Reflection.Emit)的性能
网站制作大概多少钱一个,做一个平台网站大概多少钱?
建站之星图片链接生成指南:自助建站与智能设计教程
建站与域名管理如何高效结合?
如何在云虚拟主机上快速搭建个人网站?
宝塔建站无法访问?如何排查配置与端口问题?
如何通过WDCP绑定主域名及创建子域名站点?
网站按钮制作软件,如何实现网页中按钮的自动点击?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
linux top下的 minerd 木马清除方法
深圳网站制作案例,网页的相关名词有哪些?
宝塔建站教程:一键部署配置流程与SEO优化实战指南
如何在万网自助建站中设置域名及备案?
ui设计制作网站有哪些,手机UI设计网址吗?
广州建站公司哪家好?十大优质服务商推荐
如何用VPS主机快速搭建个人网站?
如何配置WinSCP新建站点的密钥验证步骤?
IOS倒计时设置UIButton标题title的抖动问题
Java解压缩zip - 解压缩多个文件或文件夹实例
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
广州商城建站系统开发成本与周期如何控制?
C++中引用和指针有什么区别?(代码说明)
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
*服务器网站为何频现安全漏洞?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
制作网站怎么制作,*游戏网站怎么搭建?
洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?
如何快速建站并高效导出源代码?
*请认真填写需求信息,我们会在24小时内与您取得联系。