發射器在遊戲中最常見。想想英雄聯盟,星際爭霸II,或者幾乎所有的MMO。在開始真正的遊戲之前,你有一個小型的啓動程序,負責更新和打補丁。應用程序啓動器如何更新自身?
我想用我正在開發的一個特定的非遊戲應用程序來移動這個方向。啓動器的概念非常有意義:它檢查更新,替換適當的二進制文件/庫,可能運行完整性檢查並啓動應用程序。但是,發射器如何更新自己?這往往是一個罕見的事件,但它是如何完成的?啓動程序是否真的只是寫了它正在運行的二進制文件?或者在下載之後是否有某種交換步驟?我需要能夠推出(罕見)更新到啓動程序(特別是如果我發現我的啓動器中的一些錯誤)。
我的特定項目將使用C#,但我對概念上相似的C++和/或Java解決方案感興趣,以備將來參考。
一旦程序被加載到內存中,它不應該真正關心是否會發生從那裏來,所以你應該被允許覆蓋的二進制圖像文件。然後,你需要做的就是重新啓動程序,或許使用'exec'。 –
@KerrekSB聽起來很簡單。儘管如此,我仍然對最後一步仍然有點模糊。那麼,在一個單獨的過程中運行該程序,然後退出? – TheBuzzSaw
@KerrekSB,Windows在運行時鎖定可執行文件。部分原因是某些部分可能無法立即加載。 –