程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> 個人開發框架總結(六)

個人開發框架總結(六)

編輯:關於C#

三、FaibClass.Update 在線更新

軟件往往在發布以後,要進行N次的更新,如果此時軟件已經分頁到N個客戶端,采用傳統的復制更新方法將使你的系統看上去相當的別扭,所以我一慣的做法就是,軟件發布測試時就將自動更新的功能加上,用戶測試、反饋、修改後直接傳到服務器,客戶端檢測有更新時就下載更新。

這包括三個文件:FaibClass.Update.dll 、FaibClass.Transfer.dll 、UpdaterExc.exe 、UpdaterExc.exe.config

通過FaibClass.Update.dll 連接遠程地址、檢測版本,然後將任務交給UpdaterExc.exe來下載、更新。

UpdaterExc.exe.config 文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <!- 主程序名 ->
    <add key="FileName" value="Client" />
    <!- 是否使用config裡的版本號,否則的話使FileName程序集版本 ->
    <add key="UseConfigVersion" value="1" />
    <!- 服務器地址 ->
    <add key="ServerUrl" value="http://1.1.1.1:8088" />
    <!- 服務器上的配置文件 ->
    <add key="UpdaterXml" value="" />
    <!- 當前本地版本號 ->
    <add key="Version" value="1.0.0.021" />
    <!- 下載塊大小 ->
    <add key="BlockSize" value="" />
  </appSettings>
</configuration>

Updater.xml 文件,放在服務器上,功能是放置每一次版本更新的信息。

<?xml version="1.0" encoding="gb2312" ?>
<Items xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <UpdaterItem>
    <Name>D100025</Name>
    <Version>1.0.0.025</Version>
    <Date>2009-04-30T11:17:07.546875+08:00</Date>
    <Descript>
      <string>1、修正用戶反饋的錯誤提成的問題</string>
      <string>2、修正每個月只能返現一次</string>
      <string>3、加入數據統計功能接口(如報表處)</string>
    </Descript>
    <FileName>zips/1.0.0.025.rar</FileName>
    <CloseMain>true</CloseMain>
  </UpdaterItem>
  <UpdaterItem>
    <Name>D100026</Name>
    <Version>1.0.0.026</Version>
    <Date>2009-05-01T02:12:03.546875+08:00</Date>
    <Descript>
      <string>1、修正用戶反饋的錯誤提成的問題</string>
      <string>2、修正提現方案二後幾個月返現錯誤</string>
      <string>3、單積分消費處加入現金劵支付</string>
      <string>4、修正消費界面中快捷鍵輸入時積分為0的錯誤</string>
    </Descript>
    <FileName>zips/1.0.0.026.rar</FileName>
    <CloseMain>true</CloseMain>
  </UpdaterItem>
  <UpdaterItem>
    <Name>D100027</Name>
    <Version>1.0.0.027</Version>
    <Date>2009-05-04T00:50:03.546875+08:00</Date>
    <Descript>
      <string>1、修正代理商提成錯誤</string>
      <string>2、修正返現提成錯誤</string>
      <string>3、修正員工上級無法修改錯誤</string>
      <string>4、在視圖菜單中加入窗口控制</string>
    </Descript>
    <FileName>zips/1.0.0.027.rar</FileName>
    <CloseMain>true</CloseMain>
  </UpdaterItem>
</Items>

在主程序裡,使用FaibClass.Update中的Updater類來檢測更新。

Updater up = null;
try
{
 up = new Updater(Assembly.GetExecutingAssembly());
 if (up.CheckUpdate())
 {
  Utility.ShowInfoMessage("檢測到新版本,單擊確定後開始更新。");
  up.BeginUpdate();
  Application.Exit();
  return;
 }
 else
 {
  //自更新更新程序
  string file1 = Path.Combine(Application.StartupPath, "UpdaterExc.exc");
  string file2 = Path.Combine(Application.StartupPath, "UpdaterExc.exe");
  if (File.Exists(file1))
  {
   File.Replace(file1, file2, null, true);
  }
 }
}
catch (System.Exception e)
{
}

檢測到新版本後,會顯示UpdateExc的主界面:

只需點擊更新,就可以將之前沒有更新的所有版本一個一個的更新到本地。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved