我們的軟件是沒有過正式安裝在Windows上,目前有一個更新的模型是這樣的:如何實現自動更新檢測模型
連接到互聯網
點擊更新按鈕
連接到服務器端程序
服務器端程序創建所有的MD5哈希表服務器程序目錄中的文件位於 。
客戶端程序在 客戶端程序目錄中創建所有文件的md5哈希列表。
進行比較以確定文件是否需要更新,刪除或將 添加到客戶機器,並且直到完成爲止。
嗯,我想搬到一個模式,我看到更頻繁,這些天該軟件正式安裝並像這種情況使用:
當檢測到互聯網連接,該程序將自動查詢 服務器以查看是否有更新的安裝包。
如果是這樣,詢問用戶是否想要下載新安裝。
如果否,則什麼也不做,如果是,請下載新安裝。
以編程方式卸載舊程序並開始安裝 新軟件包。
我需要建議的部分是上面的第4部分。在運行原始程序的同時以編程方式卸載舊程序並開始安裝新程序的最佳方式是什麼?我假設必須有一些中介程序完成所有工作(關閉當前程序,運行卸載程序,然後啓動新的安裝程序)是否有更好的方法?我只是想轉移到一個模型中,我們更新了完整安裝而不僅僅是文件 - 這將使我們能夠更輕鬆地對我們的軟件進行版本升級,並保持自包含的安裝在任何時候都可以恢復。
感謝您的諮詢!
編輯:相關問題 - 什麼是最簡單的方法來找到特定安裝的安裝UUID?
聽起來像你理解情況相當好。 有些人將更新程序存根(稱爲中介)放在一起,他們從即將更新的應用程序啓動。它運行msiexec/u,卸載舊的東西,然後它可以運行新下載的設置。但在某些時候,它會退出,某個地方需要刪除該更新程序存根exe文件。 –
Cheeso
2009-11-05 11:55:14