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实现自动更新
# 主程序
# 自动更新
# 放在
# 客户端
# 我是
# 好了
# 花了
# 建立一个
# 新版本
# 类库
# 有什么
# 也不
# 是有
# 也就
# 不出
# 下载地址
# 控制程序
# 就不
# 什么时候
# 没有任何
相关文章:
小建面朝正北,A点实际方位是否存在偏差?
,网页ppt怎么弄成自己的ppt?
企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?
如何使用Golang安装API文档生成工具_快速生成接口文档
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
制作宣传网站的软件,小红书可以宣传网站吗?
建站之星安装失败:服务器环境不兼容?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
如何选择香港主机高效搭建外贸独立站?
建站主机服务器选型指南与性能优化方案解析
建站之星CMS建站配置指南:模板选择与SEO优化技巧
如何获取开源自助建站系统免费下载链接?
开源网站制作软件,开源网站什么意思?
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
如何快速搭建自助建站会员专属系统?
已有域名和空间如何搭建网站?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
定制建站价位费用解析与套餐推荐全攻略
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
如何快速上传自定义模板至建站之星?
成都网站制作报价公司,成都工业用气开户费用?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
家庭建站与云服务器建站,如何选择更优?
如何通过山东自助建站平台快速注册域名?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
如何快速完成中国万网建站详细流程?
如何高效配置香港服务器实现快速建站?
如何选择网络建站服务器?高效建站必看指南
如何快速查询网址的建站时间与历史轨迹?
网站制作说明怎么写,简述网页设计的流程并说明原因?
如何通过可视化优化提升建站效果?
建站之星如何开启自定义404页面避免用户流失?
网站制作模板下载什么软件,ppt模板免费下载网站?
如何快速重置建站主机并恢复默认配置?
高防服务器如何保障网站安全无虞?
官网建站费用明细查询_企业建站套餐价格及收费标准指南
动图在线制作网站有哪些,滑动动图图集怎么做?
如何在Golang中引入测试模块_Golang测试包导入与使用实践
Thinkphp 中 distinct 的用法解析
建站之星展会模版如何一键下载生成?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何批量查询域名的建站时间记录?
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
建站之星ASP如何实现CMS高效搭建与安全管理?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
建站主机系统SEO优化与智能配置核心关键词操作指南
*请认真填写需求信息,我们会在24小时内与您取得联系。