我在qt中做了一个小软件,它只有一个可执行文件和几个dll。我希望有人帮助我了解如何更新 exe 和 dll,而不必替换整个 exe 和 dll,而是编写您对现有 exe 或 dll 所做的更改。
你可以对Courgette感兴趣,这是Google用来向exe文件提供小差异的东西。
其他链接
发布一个修补程序文件,其中包含用户的现有.exe
和.dll
文件版本与用户现在需要使用的文件之间的差异。
当然,您的构建过程仍会生成完整的二进制文件1,但生成和分发补丁文件意味着您需要部署的更少。
但是,这样做并不常见,因为它对最终用户来说更复杂,并且(除非您的发行版很大)没有非常切实的好处。
注1 为什么这很重要?以下两者之间有什么区别:
- 旧文件存在
- 工具链用新信息覆盖文件
- 新文件现在存在
和
- 旧文件存在
- 工具链仅修改现有文件中更改的字节
- 新文件现在存在
出于任何实际目的,我看不出第二个有什么好处。
如果在代码中对特定 DLL 或 EXE 进行更改,则必须重新编译并重新生成 DLL 或 EXE,然后覆盖现有 DLL 或 EXE。 我不明白如果不这样做,您怎么可能对现有的 exe 或 DLL 进行更改。