局域網在線更新的各種優化二

上章描述了總體的操作,本章繼續細化:

一:在線更新

    如果能把文件列表裏的文件全部替換是最好的選擇。

    但現實是:app.config ,web.config 這類數據經常是在佈署後還要手工改動。把它替換了就得重配一次。

    如果把它從更新列表裏移除?也不行,第一次配置人員不可能全敲一遍。

    只新增不覆蓋?當加了新的配置項時,配置人員也得敲一遍。

    方案一:在配置文件作出標記,指明哪些是不可覆蓋的。。這樣更新程序就把這一塊取出,替換掉原文件裏的標記塊,再保存。

                   缺點是時間長了加上交接,這種標記可能就被忘卻了。

    方案二:把app.config直接視爲只讀文件,客戶端程序彈出設置界面,如果有不同於app.config的配置,存到另一個文件裏。

                  優點很明顯,使用時大家都輕鬆。

                  缺點是要加相當的代碼。

    方案三:如果配置文件已經存在,就不覆蓋了,換個名稱保存。比如web.config.old, 配置人員自行比對,

                 看起來是不錯的選擇,畢竟配置文件就是讓人改的。


二:發佈程序

   1:首先定義結構體:

    public class ProgramList
    {
        public string appName { get; set; }//程序關鍵字
        public string appNameCn { get; set; }//程序中文名
        public string appDownPath { get; set; }//佈署的目錄。用於下載。
        public string vssRelativePath { get; set; }//相對於vss根目錄的路徑。用於發佈。
        public string version { get; set; }//版本號。
    }

   1:程序在bin/debug目錄直接運行時,可以根據bin/debug目錄所在向上找到vss的根目錄。

         再然後疊加上上述的vssRelativePath,就可以得到本地的實際目錄。

         這樣的優點是即使程序員的vss佈署目錄都不一樣,一運行都可自動定位到正確的地方,條件是程序員自己的目錄樹結構要與VSS一致。

   2:上述要求程序員下載源代碼編譯運行,但是並不是所有人都願意這樣幹,很多人只是想直接運行。

         所以發佈程序優化爲:如果發現本程序不在debug目錄下,就提示程序員給出本地vss的根目錄。

三:各種特殊情況:

   1:現在有這種情況,一個程序有不同的配置。要發佈幾份,有的甚至只是改一個參數。怎麼發佈?

   2:第二種情況,把程序名改了,原因是爲了方便監控!!!變更作爲在線更新的關鍵字(即程序名)實在不值得鼓勵。

         如果要支持的話,可以支持腳本,支持更新程序進行重命名?


        

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章