2011-05-06 60 views
1

我已經在qt中製作了一個小軟件,它只有一個可執行文件和幾個dll。我希望有人幫助我理解如何更新exe和dll而不必更換整個exe文件和dll,而是將所做的更改寫入現有的exe或dll。軟件更新過程

+1

修改現有的exe文件可能會導致AV掃描儀將應用程序標記爲受感染。爲什麼你不想只是替換文件?你必須關閉應用程序來更新或替換exe,那麼你獲得了什麼? – Tony 2011-05-06 09:03:36

+1

「qt中的小軟件」聽起來像是矛盾的。 – n0rd 2011-05-06 09:13:40

回答

1

可以釋放補丁文件包含用戶現有的.exe.dll文件,他們現在需要使用這些文件的版本之間的差異。

當然,您的構建過程仍會生成整套二進制文件,但generating and distributing patch files意味着您的部署更少。

儘管這樣做並不常見,但對於最終用戶來說這更爲複雜,並且(除非您的發行量很大),沒有很高的實際利益。


注1爲什麼這很重要?之間有什麼對你的區別:存在

  • 工具鏈覆蓋文件與新的信息
  • 新文件現在,而不是存在
    • 舊文件存在

      • 舊文件
      • 工具鏈只修改變化的字節在現有文件
      • 新的文件現在存在,而不是

      對於任何實際的目的,我看不出有會是第二受益。

    1

    如果您對代碼中的特定DLL或EXE進行了更改,則必須重新編譯並重新生成DLL或EXE,然後覆蓋現有的DLL或EXE。我沒有看到你怎麼可能改變現有的exe或DLL,而沒有這樣做。

    +0

    有diff和補丁工具可用於可執行文件,如bsdiff或(請參閱我的答案)小胡瓜。 – Benoit 2011-05-06 09:11:46