winform實現(xiàn)自動更新并動態(tài)調(diào)用form實現(xiàn)

字號:

winform 應(yīng)用系統(tǒng)的部署問題,一直是個令人苦惱的問題。在2.0下,我們可以通過clickonce方式部署,但是這里要說的,是利用文件的操作來對系統(tǒng)進行更新。
    為了方便用戶作業(yè),把實際的系統(tǒng)打包成DLL存在,而設(shè)計一個自動更新的form來作為用戶啟動的入口。用戶啟動后,實現(xiàn)自動檢測服務(wù)端和客戶端系統(tǒng)文件版本,并把所有所需文件更新至最新版本。而后自動啟動系統(tǒng)入口界面。
    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.啟動時,實現(xiàn)自動更新
    /// 2.可把不同模塊打包DLL,在運行時,利用反射機制調(diào)用DLL 中form(類)。
    ///
    /// 為了準確顯示更新畫面,并在更新完畢后調(diào)用Dll,采用異步方式。
    ///
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    backgroundWorker1.RunWorkerAsync(); //異步更新作業(yè)
    }
    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;
    }