C ,C S公升級更新

2021-05-27 04:36:36 字數 2543 閱讀 4729

一般服務端會有乙個配置檔案包含最新更新的檔案資訊的配置檔案,當然這些更新資訊也可以存到資料庫,或者其他地方。客戶端(也就是需要更新的那部分程式)也有乙個配置檔案包含客戶端版本資訊,這些資訊可以存到專門的乙個配置檔案中,或者是config檔案中,沒有一定的規定,可以根據實際設計。

優點:處理完成後,啟動的直接就是更新後的程式。不會出現由於主程式在執行導致替換檔案之類的錯誤。

1 比較版本

比較依據:

可以通過檔案的最後修改時間,或者使用檔案版本作為比較依據,使用檔案最後修改時間顯然不是標準的做法,但也沒有錯誤,但需要注意日期的格式一定要統一,避免日 期格式不一致導致錯誤。可以使用fileinfo類獲取最後修改時間。

fileinfo類官網參考

使用檔案版本作為標準,則每次修改時必須修改版本號,c#程式就是要修assemblyinfo.cs檔案中的內容了,多了一步,規範多了。version類處理版本資訊並比較。 

c# code

assembly thisassem 

=assembly.getexecutingassembly();

assemblyname thisassemname

=thisassem.getname();

version ver

=thisassemname.version;

version類官網參考

當然也有其他的方式,例如md5校驗值比較,檔案大小比較,之類的方法。不過個人認為檔案大小缺陷很明顯,新版本檔案就一定比舊檔案大嗎?不一定吧。重構是可能變小的。

當然如果考慮客戶端有不同的版本,都需要公升級到最新的版本,顯然不同的版本對應的公升級檔案不同,會更複雜,比較的資訊也更多。

獲取服務端版本資訊:

如果服務端的版本資訊存在資料庫,直接讀取資料庫,就可以獲取。如果存在配置檔案,則可以通過webservice方法獲取,或者請求乙個網頁 通過response.write();的方式獲取資訊,當然這兩種方式都要建立虛擬目錄或者**。

儲存位置:

如果新版本的檔案存在資料庫,就直接讀取資料庫,不過這種方式個人不建議使用,例如更新檔案很大時效能不是很好。

3更新檔案

更新型別:

直接替換的,例如修改了bug,直接替換的。

新增加的,例如新增加的功能做成了新的類庫。

需要刪除的,例如有些功能由於重構或者使用了了新方法不需要的。

需要執行的,例如寫登錄檔,註冊com元件的。

每一種處理方式都不一樣,需要根據型別分開處理

缺點:公升級後,沒辦法取消公升級,像windows的補丁程式可以安裝,可以解除安裝的原理,目前還沒有研究明白,希望知道的牛人指導。

當然也可以簡單的先解除安裝,再安裝,對於配置檔案之類的資訊特殊處理一下也可以。

當然如果考慮客戶端有不同的版本,都需要公升級到最新的版本,顯然不同的版本對應的公升級檔案不同,會更複雜,但基本原理卻不變。

4啟動主程式

主程式路徑的獲取:

相對路徑 主程式,更新程式,都使用相對路徑,缺點是一旦相對路徑確定後,後續的更新就不能更改這種目錄關係。

登錄檔 路徑都存入登錄檔,需要時通過登錄檔互動,主程式寫登錄檔,更新程式讀取登錄檔,缺點是讀寫登錄檔需要許可權,寫的路徑也要固定,後續的更新不能改變寫在登錄檔中的位置,也就是登錄檔路徑。

執行程式**

c# code

private

static

void

runfile(

string

dir,

string

localfilename)

if(output

!=string

.empty)

log.logprocessend(info);

} }

catch

(exception ex)

} }

node 更新公升級

npminstall g n n stable n v7.6.0 npm v 顯示版本,檢查npm 是否正確安裝。npm install express 安裝express模組 npm install g express 全域性安裝express模組 npm list 列出已安裝模組 npm sho...

程式更新,app公升級

程式更新 一 獲取程式的版本號 1.獲取包管理器 2.獲取到包的資訊 packageinfo info manager.getpackageinfo context.getpackagename 0 3.得到版本號 info.versioncode 二 判斷當前版本與線上版本是否一致,已經更新的內容...

Angular CLI公升級和更新

angular cli更新到現在已經到了7.x版本了,在angular cli安裝過程中經歷了一次安裝方式變化 安裝方式變更版本不詳 導致在安裝 解除安裝 公升級過程中出現了坑。在angular cli 1.0.0 beta.28或更低版本中,我們安裝angular cli方式為 npm insta...