码迷,mamicode.com
首页 > 移动开发 > 详细

Winform Application系统更新

时间:2016-01-28 16:45:05      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

无废话,直接贴代码说明系统更新,

首先,让我们来看看系统的程序入口该怎样写

[STAThread]
static void Main()
{
Control.CheckForIllegalCrossThreadCalls = false;
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
bool create=false;
using (Mutex mu = new Mutex(true, Application.ProductName, out create))
{
if (create)
{
//检查系统文件是否有更新,若有更新则更新系统文件
CheckUpdate.Update();

//系统文件加载实体
LocalLoader load = new LocalLoader();
//加载系统的主引导文件
load.LoadAssembly(@"Main.Forms.dll");
//获取主程序入口
Form frmMain = load.GetFormByName("FrmMain");
if (frmMain == null)
{
return;
}
//运行主程序
Application.Run(frmMain);
//Application.Run(new FrmMain());
}
else
{
MessageBox.Show("程序正在运行!");
}
}
}

第二 ,再让我们来看一下系统文件是如何更新

public static class CheckUpdate
{
public static void Update()
{
string error = null;
bool isNeedUpdate = false;
bool isUpdate = false;

// 检查更新
Dictionary<string, string> files = FileBLL.GetAppFileList(Application.ProductName, out error);
if (files != null)
{
int i = 0;

foreach (string s in files.Keys)
{
// 如果该文件本地不存在,则需要更新
if (!System.IO.File.Exists(Application.StartupPath + "\\" + s))
{
isNeedUpdate = true;
}
else if ((FileCipherHelper.Hash(System.IO.File.ReadAllBytes(Application.StartupPath + "\\" + s), FileCipherHelper.HashFormat.MD532)) != files[s])
{// 如果HASH值不同,也需要更新
isNeedUpdate = true;
}

if (isNeedUpdate)
{
i += 1;
isNeedUpdate = false;

// 如果该文件本地不存在,则需要更新
if (!System.IO.File.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\" + s))
{
isNeedUpdate = true;
}
else if ((FileCipherHelper.Hash(System.IO.File.ReadAllBytes(AppDomain.CurrentDomain.BaseDirectory + "\\" + s), FileCipherHelper.HashFormat.MD532)) != files[s])
{// 如果HASH值不同,也需要更新
isNeedUpdate = true;
}

if (isNeedUpdate)
{

byte[] fileData = FileBLL.GetAppFile(Application.ProductName, s, out error);
if (fileData != null)
{
System.IO.File.WriteAllBytes(AppDomain.CurrentDomain.BaseDirectory + s, fileData);
isUpdate = true;
}
}
}

}
}
}
}

Winform Application系统更新

标签:

原文地址:http://www.cnblogs.com/SunliangzeSmile/p/5166601.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!