C 軟體版本自動更新策略

2021-09-02 20:28:08 字數 2179 閱讀 1198

通過共享檔案直接複製來進行更新:

1、判斷更新路徑下是否有需要更新的版本;

2、將最新版本檔案複製到當前路徑的資料夾newversion下;

3、關閉當前程式,啟動更新軟體update.exe;

4、更新軟體將newversion下的檔案移到當前路徑下進行覆蓋;

5、完成更新操作,關閉update.exe,啟動軟體程式

準備條件:

1、更新檔案放在以版本號命名的資料夾裡,如:1.0.6.0;

2、設定共享資料夾,如//server/versionupdate/,將版本資料夾放進去;

3、更新軟體update.exe,放到軟體啟動路徑下。

在這裡需要解決幾個問題:

1、更新軟體update.exe本身需要 更新;

2、版本更新跨越太大,漏掉一些必須更新檔案,比如從1.0版直接公升級到3.0版,就可能遺漏2.0版的檔案;

3、更新檔案中含有檔案。

處理:1、可以在程式中先判斷更新版本中有沒有update.exe,如果有就將其直接覆蓋本地的update.exe。其餘繼續複製到newversion下;

2、對於一些不進行公升級就有遺漏的版本可以做個標記,更新時會對這些檔案進行複製;

3、直接對更新檔案下的資料夾也整個複製。

update.exe

using system;

using system.collections.generic;

using system.linq;

using system.windows.forms;

using system.io;

using system.threading;

using system.diagnostics;

namespace update

}thread.sleep(1000);

}else }}

///

/// 轉移資料夾

///

/// 源資料夾

/// 目標資料夾

public static void removedirectory(string sourcedirname, string destdirname)

//判斷路徑後面有沒有加/

if (destdirname[destdirname.length - 1] != path.directoryseparatorchar)

destdirname = destdirname + path.directoryseparatorchar;

string files = directory.getfiles(sourcedirname);

foreach (string file in files)

string dirs = directory.getdirectories(sourcedirname);

foreach (string dir in dirs)

} }}

軟體test.exe版本更新實現

///

///

public static bool isversion(string str)

///

/// 複製資料夾

///

/// 源資料夾

/// 目標資料夾

/// 放到當前路徑的檔名

public static void copydirectory(string sourcedirname, string destdirname, string update)

//判斷路徑後面有沒有加/

if (destdirname[destdirname.length - 1] != path.directoryseparatorchar)

destdirname = destdirname + path.directoryseparatorchar;

string files = directory.getfiles(sourcedirname);

foreach (string file in files)

else

}string dirs = directory.getdirectories(sourcedirname);

foreach (string dir in dirs)

}

Git自動更新策略

思路 自動與手動相結合。1 確定要使用和更新的庫。2 宿舍 電腦設定成不自動待機 22 00 自動git pull 工作前 1 30 自動git push 工作後 4 30 自動git push 工作後 3 實驗室 電腦設定成不自動待機 6 00 自動git pull 工作前 12 00 自動git...

C 軟體自動更新程式 六

using system using system.collections.generic using system.globalization using system.linq using system.net using system.text using system.windows.for...

C 軟體自動更新程式 七

using system using system.collections.generic using system.linq using system.text using autoupgrade.models using system.xml.linq using system.net usin...