winform 应用系统的部署问题,一直是个令人苦恼的问题。在2.0下,我们可以通过clickonce方式部署,但是这里要说的,是利用文件的操作来对系统进行更新。
为了方便用户作业,把实际的系统打包成DLL存在,而设计一个自动更新的form来作为用户启动的入口。用户启动后,实现自动检测服务端和客户端系统文件版本,并把所有所需文件更新至最新版本。而后自动启动系统入口界面。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
using System.Threading;
using System.Net;
using System.IO;
namespace autoUpdateAndCallFormDll
{
///
/// 1.启动时,实现自动更新
/// 2.可把不同模块打包DLL,在运行时,利用反射机制调用DLL 中form(类)。
///
/// 为了准确显示更新画面,并在更新完毕后调用Dll,采用异步方式。
///
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
backgroundWorker1.RunWorkerAsync(); //异步更新作业
}
private void callMainForm()
{
//Dynamic Call Form using Assembly
Assembly assembly = Assembly.LoadFrom(@"D:\TEST\SD.dll");
Form frm = assembly.CreateInstance("SD.frmmain") as Form;
frm.Show();
frm.Activate();
this.Visible = false;
}
责任编辑:cyth